#include class Base { public:void Fun() { cout << "1" << endl;} }; class Derived:public Base { public:void Fun() { cout << "2" << endl; } }; int main() { Derived a; Base *p; p=&a; p->Fun(); a.Fun(); return 0; }
因为不死virtual function。如下,改为virtual function就输出22了。
#include <iostream>
using namespace std;
class Base {
public:
virtual void Fun() {
cout << "1" << endl;
}
};
class Derived: public Base {
public:
virtual void Fun() {
cout << "2" << endl;
}
};
int main() {
Derived a;
Base * p;
p = & a;
p -> Fun();
a.Fun();
return 0;
}
// Output
2
2