본문 바로가기

공부/C++

인자를 사용한 멤버 초기화 리스트 사용

자세한 내용은 주석을 봅시다잉.

#include <iostream>
using namespace std;

class NeedConstructor
{//클래스 정의.
public:

const int maxCount; //const속성
int& ref; //레퍼런스 타입
int sample;

NeedConstructor(); //여기까지 진행하면 원래 값이 무엇이 되든 100,200 이 되지만. 
NeedConstructor(int count, int& number);//두개의 인자가 있는 생성자를 추가했다.[이름은 같지만 함수는 다름.]
};
NeedConstructor::NeedConstructor(int count, int& number)
: maxCount(count), ref(number)
{
printf("인자 사용 생성자의 사용 확인메시지");

sample = 200;//무의미한 심플 값의 대입(이유는 이미 여기에선 심플값을 받아서 돌려주는 행위를 하지 않기 때문.)
}

NeedConstructor::NeedConstructor()
: maxCount(100), ref(sample) // 이 부분에서 정해주는것이 생성자의 초기화 리스트 이다.
{
printf("초기화 사용 생성자의 확인 메시지");
sample = 200; // sample값을 넣어준다.
}


int main()
{

int number = 400;

NeedConstructor cr(300,number);// 여기에 객체를 설정하며 인자를 넣음으로써  인자 사용 생성자 멤버 변수를 사용하게된다.


cout << "cr.maxCount = " << cr.maxCount << "\n";
cout << "cr.ref = " << cr.ref << "\n";



system("pause");//비쥬얼 스튜디오 2008 부터는 디버깅시에 이 문구를 사용하지 않을 시에 바로 디버깅이 종료되어버림.

return 0;

}