(14003,14004)
Dog의 하위 클래스인 NoisyDog 클래스를 정의하고 Bark 메소드를 새로 정의한다.
NoisyDog는 일반 개보다 시끄럽게 짖는 개이다.
새로운 bark 메소드는 "멍멍! 멍멍! 멍멍!"을 출력한다.
#include <iostream>
using namespace std;
class Dog{
public:
Dog();
void Bark();
};
class NoisyDog: public Dog{
public:
NoisyDog();
void Bark();
};
Dog::Dog(){
std::cout << "Dog의 생성자가 호출되었습니다. \n" ;
}
void Dog::Bark(){
cout << "멍멍" << endl;
}
NoisyDog::NoisyDog(){
//기본 생성자
}
//14003
void NoisyDog::Bark(){
cout<<"멍멍! 멍멍! 멍멍!"<<endl;
}
//14004
void NoisyDog::Bark(){
Dog::Bark(); //상위 클래스의 동일한 이름의 함수를 호출하도록 수정한다.
}
int main(){
NoisyDog nd;
nd.Bark();
}
<실행결과>
Dog의 생성자가 호출됨.
NoisyDog의 생성자가 호출됨.
멍멍
멍멍
멍멍
'C++ > 상속과 다형성' 카테고리의 다른 글
양수만 삽입하는 stack 구현 (Reuse mechanism: composition) (0) | 2021.01.24 |
---|---|
양수만 삽입하는 stack 구현 (Reuse mechanism: inheritance) (0) | 2021.01.24 |