首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

子类中的const虚函数,该如何解决

2012-02-15 
子类中的const虚函数代码如下:classbase{public:virtualvoidmytest(){cout base::mytest endl}

子类中的const虚函数
代码如下   :
class   base
{
public:
        virtual   void   mytest(){cout < < "base::mytest " < <endl;}
};


class   son   :
public   base
{
public:
        virtual   void   mytest()  
{
cout < < "son::mytest " < <endl;
}
};

int   _tmain(int   argc,   _TCHAR*   argv[])
{
base   *pmybase   =   new   base;
son   myson;

pmybase-> mytest();
pmybase   =   &myson;
pmybase-> mytest();
return   0;
}

程序输出是   base::mytest
                      son::mytest
但是如果把son的mytest函数加上const   以后

virtual   void   mytest()   const
{
cout < < "son::mytest " < <endl;
}

程序输出就变成两个base::mytest了;
怎么会这样?
我做过实验   定义一个非const对象   然后让他调用const的函数   是可以的
也就是说非const对象可以调用const函数  



[解决办法]
const是函数类型的一部分。虚函数重载的时候这个const也必须一致。
[解决办法]
靠,回答这么快啊,呵呵

热点排行