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.3] 생성자 constructors 본문

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

[C++/8.3] 생성자 constructors

polarcompass 2021. 10. 20. 03:47
728x90
#include<iostream>
using namespace std;

class Fraction
{
private:
    int m_numerator;
    int m_denominator;

public:
    Fraction(const int& num_in = 1, const int& den_in = 1) // 생성자, 외부 호출 아님.
    {
        m_numerator = num_in;
        m_denominator = den_in;
        cout << "Fraction() constructor" << endl; 
    }

    void print()
    {
        cout << m_numerator << " / " << m_denominator << endl;
    }
};

class Second
{
public:
    Second()
    {
        cout << "class Second constructor()" << endl;
    }
};

class First
{
    Second sec; // 멤버로 들어가 있음.

public:
    First()
    {
        cout << "class First constructor()" << endl;
    }

};

int main()
{
    // Fraction frac; // 선언과 동시에 생성자 선언됨.
    // // 매개변수 없으면 () 없어도 된다.
    // // 매개변수 있으면 () 있고, 매개변수 입력해준다.
    // frac.print();
    Fraction one_thirds(1); // 생성자 매개변수의 default value가 1로 되어 있어서 1/1이 나오게된다.
    one_thirds.print();

    First fir; //Second 생성자가 먼저 생성된 후 First 생성자가 생성됨.
    // Second가 멤버로 들어가 있기에, 처음에 초기화해줘야 First가 나중에 뭐든 할 수 있기 때문임.

    return 0;
}
728x90