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

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

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

那位高手给我说具体些,我在这里谢了!!!
...全文
54 点赞 收藏 9
写回复
9 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
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
楼主这么写好像不大对吧,
我怎么看不明白
回复
发动态
发帖子
工具平台和程序库
创建于2007-09-28

2.4w+

社区成员

C/C++ 工具平台和程序库
申请成为版主
社区公告
暂无公告