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 << "\n";
    }
};


int main()
{
    Student st1(0, "Jack Jack");
    st1.print();
    
    Student st2("Dash");
    st2.print();
    
    return 0;
}