C++里什么样的函数不能重载?

congcongying 2011-05-07 08:18:05
C++里什么样的函数不能重载?

a) Any constant method of a class
b) Any static method of a class
c) the destructor of a class
d) the constructor of a class
e) the constructor of a structure

面试题,放到一起的时候分不清了,请大家帮忙解释
...全文
1564 17 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
17 条回复
切换为时间正序
请发表友善的回复…
发表回复
zhuguojun213 2011-05-09
  • 打赏
  • 举报
回复
15楼很详细哈!
a070104020016 2011-05-09
  • 打赏
  • 举报
回复
谢谢楼上的楼上给出的答案,三克油~
FrankHB1989 2011-05-09
  • 打赏
  • 举报
回复
[Quote=引用 19 楼 bobyy69 的回复:]

楼主要明确的一点,关于const的类成员函数,仅仅不能够修改类的数据成员,这和参数没有太直接的关系
[/Quote]
从实现上来说可以理解为参数相关。一个传入非const的this指针,一个传入对应const类型的this指针。
KevinHo 2011-05-09
  • 打赏
  • 举报
回复
楼主要明确的一点,关于const的类成员函数,仅仅不能够修改类的数据成员,这和参数没有太直接的关系
Eleven 2011-05-08
  • 打赏
  • 举报
回复
析构函数不能重载
wizard_tiger 2011-05-08
  • 打赏
  • 举报
回复
好像除了析构函数都可以重载。
wuchengfeng222 2011-05-08
  • 打赏
  • 举报
回复
楼上是大神~ 来学习咯~~ 谢谢指导
KevinHo 2011-05-08
  • 打赏
  • 举报
回复 2
析构函数不能重载
首先要搞清楚一点,什么叫做重载,重载的实质仅仅在于参数,也就是说函数原型里,除了参数列表不同,其余的都相同,包括函数返回类型和函数名字。
而参数列表的不同,可以是参数的顺序,个数,类型。
但是要注意一些细节,比如,下面两个函数不算是重载 :

int function(const int i);
int function(int i);

而下面两个函数就是重载:

bool function2(const String &str);
bool function2(String &str);

对于指针的情况也很类似,比如

int function3(const int *p);
int function3(int *p);

但是下面这种指针参数的情况却不是重载:

int function4(int * const p);
int function4(int *p);


重载的问题,要看清楚参数的实质。
最后结构体,一般不存在构造函数,因为结构体更多的是应用于数据成员的设计,不涉及方法。
析构函数,之所以不能重载,是因为面向对象的框架要求析构函数不能有任何参数。
senyami 2011-05-08
  • 打赏
  • 举报
回复
析构函数不能重载
GARY 2011-05-08
  • 打赏
  • 举报
回复
c) the destructor of a class
析构函数无参无返回值,重载不了吧。
yang52674 2011-05-08
  • 打赏
  • 举报
回复
析构函数不能重载
FrankHB1989 2011-05-07
  • 打赏
  • 举报
回复
事实上除了const外函数签名相同的都可以重载,例如STL容器的一堆begin和end。
Defonds 2011-05-07
  • 打赏
  • 举报
回复
这个题不错,mark
FrankHB1989 2011-05-07
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 congcongying 的回复:]

哪a呢?constant method?
[/Quote]
加了const而已,和重载没关系……
congcongying 2011-05-07
  • 打赏
  • 举报
回复
哪a呢?constant method?
giveable-coding 2011-05-07
  • 打赏
  • 举报
回复
C吧,析构函数无形参,不能重载!别的都行吧。
FrankHB1989 2011-05-07
  • 打赏
  • 举报
回复
基础……
c)
class和struct之间就是访问权限的区别。

65,182

社区成员

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

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