반응형
Modern C++ 공부 Day 10입니다.
1. 기본 생성자 default constructor
기본 생성자 멤버함수를 정의하는 다양한 방법.
#include <iostream>
using namespace std;
class Internet {
public:
void connect() { cout << "Connected to Internet \n";}
void login(const string& id, const string& pw) {
cout << "Logged on with username '" << id;
cout << "' and password: " << pw << endl;
}
};
class refrigerator {
int temperature{20};
bool door_open{false};
bool power_on{false};
Internet internet;
public:
// Constructor with no defaults
refrigerator(int temperature, const string& id, const string& pw): temperature(temperature) {
internet.connect();
internet.login(id, pw);
}
// Default constructor << delegating constuctor, 다른 constructor를 이용한 constructor
refrigerator(): refrigerator(20, "mark", "1234"){};
// Constructor using default login
refrigerator(int temperature): refrigerator(temperature, "mark", "1234") {};
// Constructor using default temperature
refrigerator(const string& id, const string& pw): refrigerator(20, id, pw) {};
void print() {
cout << "Temperature is " << temperature << endl;
cout << boolalpha;
cout << "Is door open? " << door_open << endl;
cout << "Is power on? " << power_on << endl;
}
};
int main() {
refrigerator ref;
ref.print();
}
2. 복사 생성자 copy constructor
728x90
반응형
'Programming > C++' 카테고리의 다른 글
[Modern C++ 공부 - Day9] Files and Streams (0) | 2023.07.09 |
---|---|
[Modern C++ 공부 - Day8] String Operations (0) | 2023.07.05 |
[Modern C++ 공부 - Day7] 선언과 초기화 Declaration & Initialization (0) | 2023.06.16 |
[Modern C++ 공부 - Day6] C++ Semantics 시맨틱스 (0) | 2023.06.15 |
[Modern C++ 공부 - Day5] 상수 참조에 의한 전달 Pass by const Reference (0) | 2023.06.15 |