基类的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所说的用的继承体系中的类型指针做的返回值.
[解决办法]
返回的类型一个可以是基类,一个可以是派生类类型。
[解决办法]
[解决办法]
我觉得就算可以 这样的设计好像有点问题
[解决办法]
[解决办法]
mark 什么新标准还真不知道 , 大脑里给的答案是不行 , 编译期估计在遇到virtual时会进行类型检查 , 另外运行期虚表指针指向的函数的返回值不一样能够编过吗/ 不会挂?
[解决办法]
真心不可以的。