상속 및 재정의
- 옛날에 만들어서 테스트를 마친 완벽한 프로그램
- 변경 필요
- 기존의 소스 코드를 고치는 것이 아님
- 오늘 상속받고 재정의
- 객체 만들어서 넘겨줌
- 옛날에 만들었던 코드에서 오늘 재정의한 함수 호출
// Week01-OOP.cpp : 이 파일에는 'main' 함수가 포함됩니다. 거기서 프로그램 실행이 시작되고 종료됩니다.
//
#include <iostream>
class President {
public:
virtual void printCar() {
std::cout << "Maybach S580" << std::endl;
}
};
class Secretary {
President *top = NULL;
public:
Secretary(President* p) { top = p; }
void prepareCar() {
std::cout << "차를 대기시켜 놓았습니다." << std::endl;
top->printCar();
}
};
int main() {
President father;
Secretary secretary(&father);
secretary.prepareCar();
return 0;
}
// Week01-OOP.cpp : 이 파일에는 'main' 함수가 포함됩니다. 거기서 프로그램 실행이 시작되고 종료됩니다.
//
#include <iostream>
class President {
public:
virtual void printCar() {
std::cout << "Maybach S580" << std::endl;
}
};
class Secretary {
President* top = NULL;
public:
Secretary(President* p) { top = p; }
void prepareCar() {
std::cout << "차를 대기시켜 놓았습니다." << std::endl;
top->printCar();
}
};
class Derived : public President {
public:
void printCar() override {
std::cout << "Genesis G80" << std::endl;
}
};
int main() {
//President father;
//Secretary secretary(&father);
Derived me;
Secretary secretary(&me);
secretary.prepareCar();
return 0;
}