2.1. 내용 ¶
enum class
Member Initializer (Constructor Initialize list)
생성자 위임 (활용)
클래스 상속
부모 클래스 생성자 호출(Member Initializer 이용)
복사 생성자
uniform initialization (C++11, 14)
형 변환
- reinterpret cast - 타입만 변경. 메모리 내부의 데이터는 변경하지 않음
- static cast - 평범한 캐스팅. 컴파일 타임에서 검사
- dynamic cast - 런타임에서 검사.
- const cast - const를 변경 가능하게 함
디폴트 생성자 : 인자가 없는 생성자
생성자가 하나도 없는 경우 컴파일러가 자동으로 (인자가 없는) 디폴트 생성자를 생성함
인자가 없으면서, 아무 기능을 수행하지 않는 생성자를 명시적으로 생성하는 경우 '생성자명() = default;'로 작성
컴파일러가 생성자를 임의로 생성하지 못하게 하는 경우 '생성자명() = delete;'로 작성
Member Initializer (Constructor Initialize list)
생성자 위임 (활용)
클래스 상속
부모 클래스 생성자 호출(Member Initializer 이용)
복사 생성자
- call-by-value
- return-by-value
- 명시적 복사 생성자 호출
변수의 선언 방법- return-by-value
- 명시적 복사 생성자 호출
- 정적 할당, 동적 할당
객체의 선언- 정적 할당, 동적 할당, 임시 객체
임시 객체- Return by value 일 때
- 이름 없는 객체
객체 생명 주기- 이름 없는 객체
uniform initialization (C++11, 14)
- 중괄호를 객체나 배열 등으로 활용
- 동적할당을 이용한 배열에서 중괄호를 이용하여 쉽게 초기화 가능. 객체에서도 가능
- 인자에 한해서 묵시적 형변환 금지
initializer list- 동적할당을 이용한 배열에서 중괄호를 이용하여 쉽게 초기화 가능. 객체에서도 가능
- 인자에 한해서 묵시적 형변환 금지
- 가변 인자를 템플릿을 통해서 받아들임
const 메소드- 함수 내에서 멤버 변수의 값을 변경하지 않음
static로 선언한 멤버 변수와 함수- 전역 변수의 효과 (특정 객체에 종속되지 않음)
string형 변환
- reinterpret cast - 타입만 변경. 메모리 내부의 데이터는 변경하지 않음
- static cast - 평범한 캐스팅. 컴파일 타임에서 검사
- dynamic cast - 런타임에서 검사.
- const cast - const를 변경 가능하게 함
디폴트 생성자 : 인자가 없는 생성자
생성자가 하나도 없는 경우 컴파일러가 자동으로 (인자가 없는) 디폴트 생성자를 생성함
인자가 없으면서, 아무 기능을 수행하지 않는 생성자를 명시적으로 생성하는 경우 '생성자명() = default;'로 작성
컴파일러가 생성자를 임의로 생성하지 못하게 하는 경우 '생성자명() = delete;'로 작성