读书人

虚函数覆盖调用,该如何处理

发布时间: 2012-02-25 10:01:47 作者: rapoo

虚函数覆盖调用
操作系统: windowsXP
编辑器:visual C++ 6.0中的CL编辑器

按照理论,在Derived_1中重新定义aFn3()是回出现错误的。可是编辑器没有提示,那是为什么呢?

C/C++ code
#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();}


[解决办法]
http://blog.csdn.net/changewang/archive/2006/11/02/1362887.aspx
[解决办法]

不会出错, 只是把base的相同函数 隐藏了而已


读书人网 >C++

热点推荐