본문 바로가기

IT 관련자료/C++

위임생성자

#include <string>
#include <iostream>
using namespace std;


class Student
{
private:
	int _id;
	string _name;

public:
	//임의로 id에 0을 기본값으로 넣고 name은 입력받겠다
	Student(const string& name_in)
		//:_id(0), _name(name_in) <1>
		//그래서 위임생성자를 사용하는게 좋음
		:Student(0,name_in)
	{}

	Student(const int&id_in, const string &name_in)
		:_id(id_in),	_name(name_in)
	{}
	void print()
	{
		cout << _id << " " << _name << endl;
	}
	//초기화 함수를 별도로 생성
	void init(const int& id_in, const string& name_in)

	{
		_id = id_in;
		_name =name_in;
	}
};
int main()
{
	Student st1(3, "sks");
	st1.print();

	//id에 0을 강제로 넣어줘서 name만 넣어도 가능 but 비추 <1>
	Student st2("sumi");
	st2.print();
	return 0;
}