重写,重载,虚函数,帮忙解释下概念问题。

Damn_boy 2011-04-26 09:38:35

重写的意思是不是针对 同名 同返回值 同参数列表的函数?

重载则是针对同名函数

虚函数用的是重写的概念,再加上动态绑定。


下面这个是重写 还是重载,还是四不像。。。?

class main
{
void overwrite();
}

class sub :public main
{
void overwrite(int);
}

...全文
107 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
pengzhixi 2011-04-26
  • 打赏
  • 举报
回复
看来 重载,覆写(重写),屏蔽这3者LZ有必要好好去了解。
重载是针对同一作用域内的函数,覆写针对虚函数的,屏蔽是派生类与基类同名(非虚)函数
pathuang68 2011-04-26
  • 打赏
  • 举报
回复
OMG!
建议楼主先去看C++ Primer,或,另据说C++ Primer Plus更适合C++入门(我没看过,不便妄言)。
机器再学习 2011-04-26
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 fyw1990 的回复:]
引用 2 楼 kid_coder 的回复:
重写:同名 同返回值 同参数列表的函数
你两个函数的参数不一样~是重载

重写一般用于虚函数
[/Quote]
++
KID_coder 2011-04-26
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 happymawolf 的回复:]
class main
{
void overwrite();
}

class sub :public main
{
void overwrite(int);
}

上面因为函数声明时private,所以不是重写,也不是重载!下面的是重载(可以参考effective c++ 33)
class main
{
public:
void overwrite();……
[/Quote]
又来抢分了~ 好吧~ 你说的对~ 很细心
书虫 2011-04-26
  • 打赏
  • 举报
回复
class main
{
void overwrite();
}

class sub :public main
{
void overwrite(int);
}

上面因为函数声明时private,所以不是重写,也不是重载!下面的是重载(可以参考effective c++ 33)
class main
{
public:
void overwrite();
}

class sub :public main
{
public:
void overwrite(int);
}

fyw1990 2011-04-26
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 kid_coder 的回复:]
重写:同名 同返回值 同参数列表的函数
你两个函数的参数不一样~是重载
[/Quote]
重写一般用于虚函数
fyw1990 2011-04-26
  • 打赏
  • 举报
回复
重载。。。
KID_coder 2011-04-26
  • 打赏
  • 举报
回复
重写:同名 同返回值 同参数列表的函数
你两个函数的参数不一样~是重载
HeartWasNot 2011-04-26
  • 打赏
  • 举报
回复
都不是。。重写针对虚函数。。重载不存在继承当中,而在于相同类里,或者其他情况

64,643

社区成员

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

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