250x250
Notice
Recent Posts
«   2024/07   »
1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30 31
관리 메뉴

일상 코딩

[C++/8.5] CLASS 위임 생성자, 초기화 함수 이용 본문

C++/따배C++ 08강 객체지향 기초

[C++/8.5] CLASS 위임 생성자, 초기화 함수 이용

polarcompass 2021. 10. 21. 03:45
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