基类 子类 虚函数 函数名相同,参数不同, 这是什么关系?

u0116snail 2014-11-20 02:21:39
类似下面的代码:子类中的 Func 函数,和基类中的 Func 函数是什么关系?
class CBase
{
virtual BOOL Func(int, int);
};

class CDeriver : public CBase
{
virtual BOOL Func(char *, int, unsigned);
};
...全文
511 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
qq_32041507 2016-05-09
  • 打赏
  • 举报
回复
同意2、3楼
知之可否 2016-05-09
  • 打赏
  • 举报
回复
这就是“隐藏”
li4c 2014-11-20
  • 打赏
  • 举报
回复
同意2楼的看法
浪漫江湖 2014-11-20
  • 打赏
  • 举报
回复
同意2楼的说法
glore_sush 2014-11-20
  • 打赏
  • 举报
回复
他们两个是没有关系,在CDriver中的函数会覆盖父类的同名函数。就像你在全局域中定义个变量,你的局部域同名变量会覆盖它一样。
ytfhwfnh 2014-11-20
  • 打赏
  • 举报
回复
因为参数不同,所以两个Func只是简单的函数重载关系,即同名不同参数的两个函数。根据你传递的参数决定调用哪个,当然,基类对象是不可能调到子类的Func的。
版主大哥 2014-11-20
  • 打赏
  • 举报
回复
一点关系都没有 由于CDeriver 派生于CBase 所以相当于 class CDeriver { virtual BOOL Func(int, int); virtual BOOL Func(char *, int, unsigned); }; 建议你去看看 重载,重写,覆盖这些概念及异同
mr_chenping 2014-11-20
  • 打赏
  • 举报
回复
派生类中一旦复写基类中的同名函数,那么基类中的同名函数即被隐藏。

64,282

社区成员

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

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