虚函数覆盖调用,该如何处理
虚函数覆盖调用
操作系统: windowsXP
编辑器:visual C++ 6.0中的CL编辑器
按照理论,在Derived_1中重新定义aFn3()是回出现错误的。可是编辑器没有提示,那是为什么呢?
------解决方案--------------------
http://blog.****.net/changewang/archive/2006/11/02/1362887.aspx
------解决方案--------------------
不会出错, 只是把base的相同函数 隐藏了而已
操作系统: windowsXP
编辑器:visual C++ 6.0中的CL编辑器
按照理论,在Derived_1中重新定义aFn3()是回出现错误的。可是编辑器没有提示,那是为什么呢?
- C/C++ code
#include <iostream.h> //virtual function definition class 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 class class Derived_2:public Base { public: void aFn2(void) { cout<< "aFn2 is in second derived class." << endl; } }; // main() function definition void 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(); }
------解决方案--------------------
http://blog.****.net/changewang/archive/2006/11/02/1362887.aspx
------解决方案--------------------
不会出错, 只是把base的相同函数 隐藏了而已