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

[C++ 클래스의 이해] 3. 맴버 이니셜라이저란 무엇인가

by bigpicture 2022. 8. 23.
반응형

클래스에서 객체를 생성할 때 맴버변수들의 초기화를 해야합니다. 지금까지 배운 방법은 두가지가 있습니다. 

- 초기화 함수를 정의
- 생성자 이용

초기화 함수는 클래스 안에 외부에서 접근가능한 맴버함수를 정의하는 것입니다. 함수 내용은 맴버 변수의 초기화입니다. 생성자 선언 방법은 함수와 유사한데 객체 선언과 초기화를 동시에 해준다는 이점이 있습니다. 

오늘은 맴버 변수를 초기화하는 세번째 방법인 '맴버 이니셜라이저'를 배워봅시다. 맴버 이니셜라이저는 생성자와 함께 사용되므로, 지난시간에 만들었던 코드를 가져옵시다. 생성자를 이용하여 객체를 초기화하는 코드입니다. 

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

using namespace std;

class tp
{
private:
    char company[20];
    char prod_name[20];
    float volume;
public:
    tp(const char * cp,const char* pr_n,const float vol); //생성자 선언
};

tp::tp(const char * cp,const char* pr_n,const float vol)  //생성자 내용
{
    strcpy(company,cp);
    strcpy(prod_name,pr_n);
    volume=vol;
}


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

    return 0;
}


생성자 내용 부분만 보면 아래와 같습니다. 

tp::tp(const char * cp,const char* pr_n,const float vol)  //생성자 내용
{
    strcpy(company,cp);
    strcpy(prod_name,pr_n);
    volume=vol;
}


volume 을 맴버이니셜라이저로 초기화하면 아래와 같습니다. 

tp::tp(const char * cp,const char* pr_n,const float vol) //생성자 내용
        :volume(vol) 
{
    strcpy(company,cp);
    strcpy(prod_name,pr_n);
}


아래와 같은 형식으로 입력한 것입니다. 

: 맴버변수(입력 매개변수), 맴버변수(입력 매개변수), ... 

반응형

댓글