일상 코딩
[C++/8.5] CLASS 위임 생성자, 초기화 함수 이용 본문
728x90
#include<iostream>
#include<string>
using namespace std;
class Student
{
private:
int m_id;
string m_name;
public:
Student(const string& name_in)
// : m_id(0) 이렇게 중구난방으로 초기화하기 보다는 아래 생성자를 갖다 쓴다.
// , m_name(name_in)
// : Student(0,name_in)
{
init(0,name_in);
}
Student(const int& id_in, const string& name_in)
// : m_id(id_in)
// , m_name(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;
}
void print()
{
cout << m_id << " " << m_name << endl;
}
};
int main(int argc, char const *argv[])
{
Student st1{0,"Jack Jack"};
st1.print();
Student st2{"Dash"};
st2.print();
return 0;
}
728x90
'C++ > 따배C++ 08강 객체지향 기초' 카테고리의 다른 글
[C++/8.7] this 포인터와 연쇄호출, pointer and chaining member function (0) | 2021.10.22 |
---|---|
[C++/8.6] CLASS 소멸자, destructor (0) | 2021.10.21 |
[C++/8.4] 생성자 멤버 초기화 (0) | 2021.10.21 |
[C++/8.3] 생성자 constructors (0) | 2021.10.20 |
[C++/8.2] 캡슐화, 접근 지정자, 접근함수 (0) | 2021.10.20 |