반응형
출처 : KGCA 게임 아카데미(http://www.kgcaschool.com/). 수업 예제 파일.
parents.h
#pragma once #include <iostream> using std::cout; using std::endl; class parents { private: int money; public: void Character(); //성품 출력 void Appearance(); //외모 출력 void Wealth(); //재산 출력 parents(); //생성자 parents(int money); //생성자 virtual ~parents(); //소멸자 };
parents.cpp
#include "parents.h" void parents::Character() { cout << "차분한 성품" << endl; } void parents::Appearance() { cout << "잘생긴 외모" << endl; } void parents::Wealth() { cout << "재산 : " << money << "원" << endl; } parents::parents() { money = 1000000000; //10억 cout << "--------parent 생성자" << endl; } parents::parents(int money) { this->money = money; cout << "--------parent 생성자" << endl; } parents::~parents() { cout << "--------parent 소멸자" << endl; }
child.h
#pragma once #include "parents.h" class child :public parents { public: void Humanity(); //추가된 멤버함수 void Character(); //수정된 멤버함수 void Apperance(); //확장된 멤버함수 child(); ~child(); };
child.cpp
#include "child.h" void child::Humanity() { cout << "넘치는 인간미" << endl; } void child::Character() { cout << "불 같은 성품" << endl; } void child::Apperance() { parents::Appearance(); //기반 클래스에서 정의한 기능 cout << "훤칠한 키" << endl; //파생 클래스에서 확장된 기능 } //child::child() //{ // cout << "child 생성자" << endl; //} child::child() : parents(1000) { cout << "--------child 생성자" << endl; } child::~child() { cout << "--------child 소멸자" << endl; }
main.cpp
#include "child.h" int main(void) { parents pMan; pMan.Character(); pMan.Appearance(); pMan.Wealth(); child aBoy; aBoy.Character(); // Parent에서 상속 받은 함수 호출 aBoy.Appearance(); // Parent에서 상속 받은 함수 호출 aBoy.Wealth(); // Parent에서 상속 받은 함수 호출 aBoy.Humanity(); // Child에서 추가된 함수 호출 return 0; }
반응형