关于系统自动提供多少个构造函数-->谁能给我一个准确详细的答案

pop1210 2009-03-31 05:11:29
类中一个自定义构造都没有,此时有多少个构造(2个?默认和拷贝);
自定义一个之后,有多少个(2个?自定义的和拷贝)
自定义一个拷贝构造之后,有多少个(1个?这个时候系统还提供无参的构造么?)

此外还有没有其它情况?先谢了~~~~!
...全文
162 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
wjb_yd 2009-04-02
  • 打赏
  • 举报
回复
自己看看《深度探索c++对象模型》,就全明白了
Jarrys 2009-04-02
  • 打赏
  • 举报
回复
首先,当你没有定义构造函数时,系统自动生成一个无参的构造函数,一析构函数,一副本构造函数
当你定义了构造函数,但你定义的是一个有参的构造函数,这时自定义的构造函数也会覆盖掉系统提供的无参构造函数,这时你也不能通过调用无参的构造创建对象,如 String object()系统会提示找不到构造函数,所以此时不提供默认构造函数。

其他也一样,自定义的构造函数会覆盖掉系统提供的默认构造函数。
zju001 2009-04-02
  • 打赏
  • 举报
回复
类中一个自定义构造都没有,此时有多少个构造 == 2个,默认和拷贝
自定义一个之后,有多少个 == 1个,拷贝构造函数
自定义一个拷贝构造之后,有多少个 == 系统不提供构造函数了
pop1210 2009-03-31
  • 打赏
  • 举报
回复
系统默认提供两个构造(默认的和拷贝的);
如果自定义的是非拷贝的构造,那系统只为你提供个拷贝构造;
如果自定义的恰好是拷贝构造,那系统不再为你提供任何构造了;(这时的类就没意义了!)

不知道这样对不??
pop1210 2009-03-31
  • 打赏
  • 举报
回复
如果仅在类中提供一个拷贝构造,那这个类就没意义啦!因为没办法生成该类的对象啦,
ypb362148418 2009-03-31
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 xuedaoli 的回复:]
首先一个类中,你没定义任何东西的话。
编译器是为你生成一个默认的构造函数,一个析构函数,拷贝构造函数。

如果你自己定义了的话,是会替代掉默认的函数。
编译器会把你定义的构造函数为当前类的构造函数
[/Quote]


//支持
Cpp权哥 2009-03-31
  • 打赏
  • 举报
回复
系统自动为一个类提供的构造函数最多两个:无参和拷贝。
只要自定义了构造函数,就不再自动提供无参构造函数。如果自定义的这个构造函数正好是拷贝构造函数,那就不自动提供拷贝构造函数了。
mengde007 2009-03-31
  • 打赏
  • 举报
回复
C++模型深度探索
xuedaoli 2009-03-31
  • 打赏
  • 举报
回复
首先一个类中,你没定义任何东西的话。
编译器是为你生成一个默认的构造函数,一个析构函数,拷贝构造函数。

如果你自己定义了的话,是会替代掉默认的函数。
编译器会把你定义的构造函数为当前类的构造函数

65,210

社区成员

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

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