#include <iostream> #include <string> using namespace std;
class car { public: string Color; string Vender; string Model;
car()//생성자 { Color="없음"; Vender="없음"; Model="없음"; cout << "car class 생성자 구동\n"; }
void print() { cout <<"Color = " << Color <<endl; cout <<"Vender = " << Vender <<endl; cout <<"Model = " << Model <<endl; }
~car()//소멸자 생성. { cout << "car class 소멸자 구동 시작\n"; print(); cout << "car class 소멸자 구동 끝\n"; } };
class bmw_745 { public: string Color; string Vender; string Model;
bmw_745() { Color="white"; Vender="bmw"; Model="745Li"; cout << "bmw class 생성자 구동\n"; } ~bmw_745() { cout << "bmw_745 class 소멸자 구동 시작\n"; print(); cout << "bmw_745 class 소멸자 구동 끝\n"; } void print() { cout <<"Color = " << Color <<endl; cout <<"Vender = " << Vender <<endl; cout <<"Model = " << Model <<endl; }
};
//class Mornig:car
class Mornig:public car //class car를 상속받는다. { public: Mornig() { Color="red"; Vender="kia"; Model="morning"; cout << "Mornig class 생성자 구동\n"; }
~Mornig() { cout << "Mornig class 소멸자 구동 시작\n"; print(); cout << "Mornig class 소멸자 구동 끝\n"; } };
int main() { car aCar; aCar.Color="blue"; aCar.Vender="bmw"; aCar.Model="sonata"; // aCar.print();
bmw_745 Mycar; // Mycar.print();
Mornig Momcar; // Momcar.print();
return 0; }
/* 상속받은 클래스는 부모생성자와 자식생성자 2개를 생성한다. (실행결과 3,4행은 Mornig class의 의해서 생성된것.) 소멸자는 역순으로 자식생성자, 부모생성자순으로 소멸된다.
*/
|