생성자

-객체가 생성될 때 생성과 동시에 초기화하기 위해 호출됨

-객체 생성 할 때만 한번만 호출됨

 

생성자 형태

-클래스의 이름과 함수의 이름이 동일

-반환형 x, 실제로 반환 x

 

생성자 특징

-오버로딩 가능(생성자도 함수의 일종이라)

-매개변수에 디폴트 값 설정 가능

 

객체의 생성과정

1.메모리공간의할당

2.initializer를 이용한 멤버변수의 초기화

3.생성자의 몸체부분 실행

 

생성자 예시 코드

 

멤버 이니셜라이저(Member Initializer)

-멤버변수를 선언과 동시에 초기화(그런 형태로 바이너리 코드가 구성됨)

-initializer는 멤버변수로 선언된 객체의 생성자 호출에 활용됨

 

멤버 이니셜라이저 장점

-초기화의 대상 명확히 인식

-성능에 이점

 

멤버 이니셜라이저 예시 코드

멤버 이니셜라이저를 이용한 const상수 초기화

-const멤버변수(선언과 동시에 초기화해야함)도 이니셜라이저를 이용해만 초기화 가능(이니셜라이저를 이용하면 선언과 동시에 초기화가 이뤄지는 형태이기 때문에 )

멤버 이니셜라이저를 이용한 참조자 선언

-참조자도 선언과 동시에 초기화가 이루어져야 되기 때문에 이니셜라이저를 통해서만 초기화 가능

 

 

private 생성자

-클래스 내부에서만 객체의 생성을 허용하는 목적으로 사용함

<주의할점>

Rectangle rec() - 이렇게  하면 함수 원형 선언과 표현이 겹치기 때문에 사용 불가 (x)

Rectangle rec; - 이렇게 생성해야함

Rectangle rec(100); - 매개변수가 있는 경우

 

Rectangle* rec1=new Rectangle; - 표현 가능

Rectangle* rec2=new Rectangle(); - 동적할당할 때는 이렇게 표현가능
Rectangle* rec3=new Rectangle(100);

 

 

============================================================================

소멸자

-객체소멸시 반드시 호출됨

-소멸자는 생성자에서 할당한 리소스의 소멸에 사용

 

소멸자 형태

-클래스의 이름 앞에 '~'가 붙음

-반환형 x, 실제로 반환 x

-매개변수는 void형으로 선언되기 때문에 오버로딩,디폴트 값 설정 불가

-소멸자 명시해주지 않으면 디폴트 소멸자가 자동으로 삽입됨

 

소멸자 예시

 

 

 

 

'Programming Language > C++' 카테고리의 다른 글

03-1 C++의 구조체  (0) 2019.07.19
04-4 this포인터  (0) 2019.07.18
04-2 const 키워드  (0) 2019.07.17
04-1 정보은닉, 캡슐화  (0) 2019.07.17
05-2 얕은 복사, 깊은 복사  (0) 2019.07.17

+ Recent posts