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

基类的virtual和子类的virtual的返回类型可以不可以不一样,该如何处理

2012-04-25 
基类的virtual和子类的virtual的返回类型可以不可以不一样基类的virtual A函数和子类的A函数的返回类型可

基类的virtual和子类的virtual的返回类型可以不可以不一样
基类的virtual A函数和子类的A函数的返回类型可以不可以不一样
网上看了说可以不一样http://www.cppblog.com/horsetail/articles/18316.html?opt=admin
但是我自己这样用的时候 却是有这样的错误 为什么
错误1error C2555: “checkingAccount::debit”: 重写虚函数返回类型有差异,且不是来自“Account::debit”的协变c:\documents and settings\administrator\my documents\visual studio 2010\projects\猜数字\猜数字\checkingaccount.h18
怎么解决



[解决办法]
链接说的是最新的c++标准,而且有限制,必须是同一继承体系中的类型
[解决办法]
上代码看看?
我也记得是可以的.
不过我测试用的 如1L所说的用的继承体系中的类型指针做的返回值.
[解决办法]
返回的类型一个可以是基类,一个可以是派生类类型。
[解决办法]

探讨

返回的类型一个可以是基类,一个可以是派生类类型。

[解决办法]
我觉得就算可以 这样的设计好像有点问题
[解决办法]
探讨
其实我想问的是 一个virtual函数 基类返回bool 子类返回double 可不可以

[解决办法]
mark 什么新标准还真不知道 , 大脑里给的答案是不行 , 编译期估计在遇到virtual时会进行类型检查 , 另外运行期虚表指针指向的函数的返回值不一样能够编过吗/ 不会挂?
[解决办法]
真心不可以的。

热点排行