0
#include <iostream>
using namespace std;
class A
{
public:
virtual void func() {cout << "func A" << endl;}
};
class B : public A
{
public:
void func() const {cout << "func B" << endl;}
};
int main()
{
A *pa = new B;
pa->func();
B *pb = new B;
pb->func();
return 0;
}
輸出爲:
func A // pa->func();
func B // pb->func();
爲什麼,做pb->func();
當B的方法,將工作,而不是其他一個(B是從A繼承的)?
感謝,羅南