子类中的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函数