상속에서의 생성자와 소멸자
2019. 8. 12. 01:09ㆍPL/C++
자식 클래스의 인스턴스를 만들 때 가장 먼저 부모 클래스의 생성자가 호출된다. 이후에 자식 클래스의 생성자가 호출된다. 또한 자식 클래스의 수명이 다했을 때는 자식 클래스의 소멸자가 먼저 호출된 이후에 부모 클래스의 소멸자가 호출된다
#include <string>
#include <iostream>
using namespace std;
class Person {
private:
string name;
public:
Person(string name) : name(name) {
cout << "부모 클래스 생성자 호출\n";
}
string getName() {
return name;
}
void showName() {
cout << "이름 : " << getName() << '\n';
}
~Person() {
cout << "부모 클래스 소멸자 호출\n";
}
};
class Student : Person {
private:
int studentID;
public:
Student(int studentID, string name) : Person(name) {
this->studentID = studentID;
cout << "자식 클래스 생성자 호출\n";
}
void show() {
cout << "학생 번호 : " << studentID << '\n';
cout << "학생 이름 : " << getName() << '\n';
}
~Student() {
cout << "자식 클래스 소멸자 호출\n";
}
};
int main(void) {
Student a(13, "노을");
a.show();
return 0;
}
'PL > C++' 카테고리의 다른 글
2차원 배열에서 &a[5]와 a[5]의 차이 (0) | 2019.08.12 |
---|---|
friend 클래스 (0) | 2019.08.12 |
C++ 클래스 변수 초기화와 this 포인터 (0) | 2019.08.12 |
string에 한글 입력이 들어가지 않는 이유 (0) | 2019.08.11 |
Visual Studio와 GitHub을 연동 (0) | 2019.08.11 |