본문 바로가기
C++/클래스

[C++ 클래스의 이해] 4. 생성자와 맴버 이니셜라이저의 기능적 차이

by bigpicture 2022. 8. 23.
반응형

생성자와 맴버 이니셜라이저는 객체의 맴버변수를 초기화하기 위해 사용됩니다. 어떤 클래스에서 volume 이라는 맴버변수를 초기화하는 상황을 가정하였습니다. 생성자와 맴버이니셜라이저 각각의 사용 예시는 아래와 같습니다. 

생성자

tp(const float vol)  //생성자 내용
{
    volume=vol;
}


맴버 이니셜라이저

tp(const float vol)
        :volume(vol) //맴버 이니셜라이저
{
}

 

생성자와 맴버이니셜라이저의 차이

생성자는 volume 이라는 변수를 선언한 뒤에 값을 입력합니다. 아래 과정이 수행되는 것입니다. 

int volume;
volume=vol;


따라서 맴버변수인 volume 을 선언할 때 const 가 불가능합니다. 반면 맴버 이니셜라이저는 변수 선언과 동시에 초기화가 이루어집니다. 

int volume=vol;


따라서 맴버변수에 const 선언이 가능합니다. 아래는 const 선언을 하고 맴버이니셜라이저로 초기화하는 전체 코드입니다. 

#include <iostream>
#include <cstring> //strcpy 사용

using namespace std;

class tp
{
private:
    const float volume; //const선언
public:
    tp(const float vol); //생성자 선언
};

tp::tp(const float vol) 
        :volume(vol) //맴버 이니셜라이저
{

}


int main()
{
    tp pure2080(150); //객체 생성과 동시에 초기화

}

 

반응형

댓글