下面的派生类的虚拟函数的重新声明对吗?

古布 2003-12-24 07:21:04
(1) base* base::copy( base* ); // 父类
base* derived::copy( base* ); // 子类

(2) base* base::copy( base* ); // 父类
base* derived::copy( derived* ); // 子类

那位高手给我说具体些,我在这里谢了!!!
...全文
86 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
deyi 2003-12-30
  • 打赏
  • 举报
回复
同意 hz129(古雨) 的写法。
hz129 2003-12-30
  • 打赏
  • 举报
回复
(1) virtual base* base::copy( base* ); // 父类
virtual base* derived::copy( base* ); // 子类 <-- 正确

(2) virtual base* base::copy( base* ); // 父类
virtual base* derived::copy( derived* ); // 子类 <-- 错误,其实是声明了一个新的函数,应改为
virtual derived* derived::copy( base* );

我记得这可能是叫做“协变返回类型”吧
sharkhuang 2003-12-29
  • 打赏
  • 举报
回复
你的意思是overload吗?
QQQiang 2003-12-29
  • 打赏
  • 举报
回复
這個題目:如果你在非標準的C++編譯器上編譯可能通不能,不過在標準C++編譯器上,現在好像能通過了...好像是這樣子的(不确定)....
kaphoon 2003-12-25
  • 打赏
  • 举报
回复
对啊
讲的明白些
你这样讲太抽象了
sixsavage 2003-12-25
  • 打赏
  • 举报
回复
两个类写完整嘛
cxjddd 2003-12-24
  • 打赏
  • 举报
回复
不知道你是要怎么用。

是从外面 copy 到 this,还是从 this 里 copy 到外面?
zyOOOOOO 2003-12-24
  • 打赏
  • 举报
回复
mark
昌意 2003-12-24
  • 打赏
  • 举报
回复
楼主这么写好像不大对吧,
我怎么看不明白

24,854

社区成员

发帖
与我相关
我的任务
社区描述
C/C++ 工具平台和程序库
社区管理员
  • 工具平台和程序库社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧