下面的代码会输出
FB::Func1
FB::Func1
#includeusing namespace std; class FA { public: virtual void Func1() { printf("FA::Func1 n "); } //void Func1(int a) { //} //void Func1(int a, int b) { //} //void Func1(int a, int b, int c) { //} }; class FB:public FA{ public: virtual void Func1(){ printf("FB::Func1 n "); } }; int main() { //FA::Func1(); //FA::Func1(1); //FA::Func1(1, 2); //FA::Func1(1, 2, 3); FB A; A.Func1(); FA* p = &A; p->Func1(); //A.Func1(1, 2); //A.Func1(1, 2, 3); return 0; }
而下面的代码会输出
FB::Func1
FA::Func1
#includeusing namespace std; class FA { public: void Func1() { printf("FA::Func1 n "); } //void Func1(int a) { //} //void Func1(int a, int b) { //} //void Func1(int a, int b, int c) { //} }; class FB:public FA{ public: void Func1(){ printf("FB::Func1 n "); } }; int main() { //FA::Func1(); //FA::Func1(1); //FA::Func1(1, 2); //FA::Func1(1, 2, 3); FB A; A.Func1(); FA* p = &A; p->Func1(); //A.Func1(1, 2); //A.Func1(1, 2, 3); return 0; }
虚函数将只会执行派生类函数
而普通函数如果将类转换为父类会执行父类函数
可以用来封装



