상속 계층 구조에서 virtual
으로 메소드를 한 번 정의하면 다형성이 작동합니다. 다음의 예 데르 :: F에서 는 (... 그것은 단지가 될 수있다) 자료에서 상속다형성을 작동시키기 위해 상속 계층 구조에서 가상 메소드를 한 번 정의하십시오.
class Base
{
public:
virtual void f() { std::cout << "base"; }
};
class Der : public Base
{
public:
void f() { std::cout << "der"; } //should be virtual?
};
class Der2 : public Der
{
public:
void f() { std::cout << "der2"; }
};
int main()
{
Der* d2 = new Der2();
d2->f();
}
예, 작동합니다. – David
예. 엄격하게 말하면, 상속 된 클래스에서도 가상 클래스를 사용하는 것이 더 명확 할 수 있습니다. –