虚函数覆盖调用
操作系统: windowsXP
编辑器:visual C++ 6.0中的CL编辑器
按照理论,在Derived_1中重新定义aFn3()是回出现错误的。可是编辑器没有提示,那是为什么呢?
#include <iostream.h>//virtual function definitionclass Base{ public: //define two virtual function. virtual void aFn1(void) { cout << "aFn1 is in Base class." << endl; } virtual void aFn2(void) { cout << "aFn2 is in Base class." << endl; } void aFn3(void) { cout << "aFn3 is in Base class." << endl; }};//Overloading the virtual fucntion aFn1 in Derived_1 class.class Derived_1:public Base{ public: void aFn1(void) { cout<< "aFn1 is in First derived class." << endl; } void aFn3(void) { cout << "aFn3 is in First derived class."<< endl; }};//Overloading the virtual fucntion aFn2 in Derived_2 classclass Derived_2:public Base{ public: void aFn2(void) { cout<< "aFn2 is in second derived class." << endl; }};// main() function definitionvoid main(void){ // create and use object of base class Base b; cout << "Base : " << endl; b.aFn1(); b.aFn2(); b.aFn3(); cout<< "---------------------------------------------"<< endl; //create and use the object of derived_1 class Derived_1 d1; d1.aFn1(); d1.aFn2(); d1.aFn3(); cout << "--------------------------------------------" << endl; //create and use the object of derived_2 class Derived_2 d2; d2.aFn1(); d2.aFn2(); d2.aFn3();}