IT 프로그래밍/C++

[따배시 C++ 8.4] 생성자 멤버 초기화 목록, 위임 생성자

기술1 2024. 4. 10. 20:40
반응형
#include <iostream>
using namespace std;

class Something
{
private:
	int		m_i;
	double  m_d;
	char	m_c;

public:
	Something()
		: m_i(1), m_d(3.14), m_c('a')
	{
	}

	void print()
	{
		cout << m_i << " " << m_d << " " << m_c << endl;
	}
};


int main()
{
	Something som;
	som.print();
}

이렇게 사용도 가능합니다. something() 뒤에 : 이거와 함께 만들고 싶은 값을 괄호와 함께 넣어줘도 되는데요. {}를 넣어줘도 상관이 없습니다. 

 

	Something()
		: m_i(1), m_d(3.14), m_c('a'), m_arr{ 1, 2, 3, 4, 5 }, m_b(m_i -1)

이렇게 사용하시는 법에 익숙해지면 좋습니다. 

 

 

위임 생성

public:
	Student(const string& name_in)
	{
		init(0, name_in);
	}

	Student(const int& id_in, const string & name_in)
	{
		init(id_in, name_in);
	}

	void init(const int& id_in, const string& name_in)
	{
		m_id = id_in;
		m_name = name_in;
	};

이렇게 하나의 생성자를 다른 생성자에 넣어주는 방식으로 할 수도 있습니다. 이것많이 코딩하는 방식입니다. 

반응형