#include <iostream>
using namespace std;
class A {
private:
int nVal;
public:
void Fun()
{
cout << "A::Fun" << endl;
}
void Do()
{
cout << "A::Do" << endl;
}
};
class B :public A {
public:
virtual void Do()
{
cout << "B::Do" << endl;
}
};
class C :public B {
public:
void Do()
{
cout << "C::Do" << endl;
}
void Fun()
{
cout << "C::Fun" << endl;
}
};
void Call(B& p)
{
p.Fun(); p.Do();
}
int main() {
C c; Call(c);
return 0;
}
に基礎クラス参照を発表については、出力はC++多型は、上記のコードでは、派生クラス
A::Fun
C::Do
あるしかし、私は理解することはできません。出力がない理由の関数呼び出し(B & P)において、基準pは
C::Fun
C::Do
派生クラスにAA基底クラス参照を発表し、異なる基底クラスであるCクラスからCを参照し、そうすべきです何か意味がありますか?
基本クラスで仮想関数を作成する必要があります。 –