브래의 슬기로운 코딩 생활
C++ 예습 - 5 본문
어제는 예습을 하긴 했는데
블로그에 올리는 것을 까먹어서
오늘 한꺼번에 올리려고 한다.
그런데 C++ 분량이 너무 많아서
개강 전까지 다 할 수 있을까 걱정된다.
=====================================================================
구조체
숫자를 저장: int, double
문자를 저장: char
문자열 저장: char*, char배열
struct 구조체 이름{
char ~;
int ~;
doble~;
~;
};
변수: int x; = 4바이트짜리 단독주택 1가구
배열: int x[5] = 4바이트짜리 주택 5가구 / 동일한 형의 데이터들을 하나의 단위로 취급
구조체(변수/배열/구조체들의 모임) = 다른 형의 데이터들을 하나의 단위로 취급
C구조체 (변수들의 모임) => C++클래스 (변수 + 함수들의 모임)
C구조체: 변수의 모임 //C++구조체: 변수와 함수의 모임 (클래스와 다르다.)
C++ 언어에서는 struct를 생략하고 구조체명과 변수명만 써도 됨
구조체 틀을 만들 때 구조체 이름을 생략할 수도 있지만 거의 사용하지 않음(X)
구조체 변수가 자신의 멤버를 접근하기 위해서는“.”이나 “->”연산자를 사용
일반 구조체 변수의 멤버 접근
구조체_변수.멤버명;
점 연산자, 도트 연산자, 지정 연산자, 멤버 지정 연산자
구조체 포인터 변수의 멤버 접근
구조체_포인터_변수->멤버명;
화살표 연산자, 간접 멤버 연산자
구조체 선언과 typedef 으로 구조체명을 임의로 지정할 수 있다.
= typedef 기존형 새로운 형 이름;
객체지향 프로그래밍
=실세계를 반영하는 프로그래밍
캡슐화, 상속성, 다형성
C문법을 포합하고 있지만 프로그래밍 스타일은 완전히 다름!
객체 지향 프로그래밍
구조적 프로그래밍 기법을 계승하고 보다 발전시킨 개념
자료와 처리동작을 하나로 묶어 다루는 객체 개념 도입
객체는 자료와 이를 처리하는 동작인 연산(함수, method)을 하나로 묶어 만든 요소
인스턴스는 객체와 같음
클래스는 객체의 타입이다.
클래스는 객체들의 공통적인 특성을 모아 놓은 것, 설계도
객체는 자신이 상태와 행동, 이름을 가지고 있는 것, 집
클래스로 캡슐화
클래스로 추상 자료형(ADT: Abstraction Data Type)을 지원
상속: 파생 클래스가 기본 클래스의 정의된 속성(자료 및 연산)을 상속받는 것
파생 클래스, 자식 클래스: 상위 클래스의 속성을 상속받은 하위 클래스
기본 클래스, 부모 클래스: 상위 클래스
상속을 이용하면 기조 프로그램의 재사용이 수월하여 프로그램의 개발비용과 복잡도를 줄일 수 있음.
파생 클래스를 사용하면 자료형의 계층화도 가능
상위 클래스일수록 일반화된 클래스
하위 클래스일수록 세분화, 구체화 된 클래스
다형성(polymorphism)
- poly + morph: 많은 형태
하나의 함수 이름(함수 중첩)이나 연산자(연산자 중첩)을 여러 목적으로 사용
그림을 그리는 언어: UML(Unified Modeling Language)
클래스 이름
멤버변수 (특성)
멤버함수 (행위)
클래스 선언 / 객체 정의
'1 - 여름방학 > C++ 예습' 카테고리의 다른 글
C++예습 마지막 (0) | 2022.08.12 |
---|---|
C++ 예습 - 6 (0) | 2022.07.06 |
C++ 예습 -4 (0) | 2022.06.30 |
C++ 예습 - 3 (0) | 2022.06.29 |
C++ 예습 - 2 (0) | 2022.06.28 |