C++中继承的几点疑惑

bigzzz 2003-10-17 11:09:32
1.关于虚拟函数的派生类实例改写其基类的活动实例:
其中有个特例,派生类实例的返回值可以是基类实例返回类型的公有派生类类型
那么如果这个派生类是私有或保护继承的则不能算是改写了基类虚拟函数?(而是另一个虚拟函数?)
2.关于纯虚拟函数:
C++ Primer第758-9行指出通过虚拟机制调用纯虚拟函数也是错误的)
但在760页17.5.3节的最后说。纯虚拟函数,虽然它可以通过虚拟机制被调用,但也可以被静态调用。其中的BinaryQuery::print(os)是纯虚拟函数么?纯虚拟函数前面的virtual是可选的?只要赋予0值就行?
...全文
29 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
Tangyongkang 2003-10-17
  • 打赏
  • 举报
回复
别管书上怎么说, 找些例子,调调就知道了。
实践检验真理
aflyinghorse 2003-10-17
  • 打赏
  • 举报
回复
1.这里指的是虚拟函数的返回类型, 派生类虚函数返回类型可以是基类虚函数返回类型的公有派生类类型,私有或保护继承的则不行
2.BinaryQuery::print(os)是纯虚拟函数
纯虚拟函数前面的virtual是必须的,但基类已经有virtual,所以派生类可以省略

64,439

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

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