일상 코딩
[C++/8.3] 생성자 constructors 본문
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
'C++ > 따배C++ 08강 객체지향 기초' 카테고리의 다른 글
[C++/8.6] CLASS 소멸자, destructor (0) | 2021.10.21 |
---|---|
[C++/8.5] CLASS 위임 생성자, 초기화 함수 이용 (0) | 2021.10.21 |
[C++/8.4] 생성자 멤버 초기화 (0) | 2021.10.21 |
[C++/8.2] 캡슐화, 접근 지정자, 접근함수 (0) | 2021.10.20 |
[C++/8.1] 객체지향 프로그래밍과 클래스 (0) | 2021.10.20 |