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

为何C++中赋值操作符的定义没有隐藏基类的方法,该怎么处理

2012-05-22 
为何C++中赋值操作符的定义没有隐藏基类的方法http://topic.csdn.net/t/20031019/12/2371341.html看这个帖

为何C++中赋值操作符的定义没有隐藏基类的方法
http://topic.csdn.net/t/20031019/12/2371341.html
看这个帖子,回答中表明在派生类的赋值操作符的参数和基类不同的情况下还是调用了基类的函数.但是c++ primer plus 中说如果派生类和基类同名函数的参数不一样,会隐藏基类的同名函数.为何上边这个例子没隐藏?

[解决办法]
哦,不好意思没看到。
既然参数都不一样,就不再是重载了。
你使用基类的指针,不用虚函数声明并在子类中实现的话,系统只能将你的*pb1 =(b);使用基类的operator= 来实现,b 会默认转换为基类Base对象,因为系统找不到第二个更合适的函数来匹配。

探讨

引用:

你的Base类中的operator =() 没有用virtual修饰。

引用:

引用:

引用:

http://topic.csdn.net/u/20100801/12/123C40FB-F58A-4800-89AB-C9E0667BD4EE.html#r_67442030还有这个帖子
……

热点排行