CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
山寨机中的战斗机! 程序优化工程师到底对IT界有没有贡献
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  C/C++ >  C语言

构造函数

楼主jinbing(若晴)2002-05-18 11:25:41 在 C/C++ / C语言 提问

"对于所有的类,如果不定义构造函数,则编译器生成默认构造函数."    
  这句话对吗??  
  问题点数:50、回复次数:30Top

1 楼Januarius_(努力学习J2EE中)回复于 2002-05-18 11:36:37 得分 0

Of   course   it's   right!Top

2 楼Januarius_(努力学习J2EE中)回复于 2002-05-18 11:38:23 得分 0

不过你自己写了默认构造函数后,系统就会调用你的函数Top

3 楼jinbing(若晴)回复于 2002-05-18 11:40:40 得分 0

是对于任何类吗?在vc编译器下呢?Top

4 楼microblue()回复于 2002-05-18 11:42:45 得分 0

是的  
  Top

5 楼jinbing(若晴)回复于 2002-05-18 11:46:16 得分 0

不会吧,我听有人说"在适当的时候,编译器对没有申明构造函数的类产生默认构造函数",并不是所有的类,为什么??Top

6 楼sbg(宝宝酥)回复于 2002-05-18 11:47:07 得分 30

如果一个类是借着“调用member   object   或   base   class   的default   constructor   ”或“为每一个object   初始化其virtual   function机制或virtual   base   class机制”而完成,这样编译器酒会合成一个default   constructor   至于没有上述四种情况的有没有声明任何constructor的我们说他们用有的是implicit   trivial   default   constructors   他们实际上并不会被合成出来Top

7 楼sbg(宝宝酥)回复于 2002-05-18 11:47:36 得分 0

这句话错误Top

8 楼jamesfangjing(Bayes)回复于 2002-05-18 11:48:08 得分 0

rightTop

9 楼sandywei(wzs)回复于 2002-05-18 12:07:49 得分 0

不全是这样子,抽象类哪里来的构造函数,如有的话不是可以实例化啦。Top

10 楼jinbing(若晴)回复于 2002-05-18 12:47:47 得分 0

sbg(宝宝酥)   ,"他们用有的是implicit   trivial   default   constructors   他们实际上并不会被合成出来"  
  是什么意思?Top

11 楼jinbing(若晴)回复于 2002-05-18 13:32:29 得分 0

空类class   A   {};   不产生构造函数,对吗??Top

12 楼guyu_jj(蓝鸟)回复于 2002-05-18 14:42:22 得分 10

系统会自动产成一个构造函数,不过大多时候是无效的    
   
  具体可以参看<<c++物件导向>>    
  侯捷出的Top

13 楼guyu_jj(蓝鸟)回复于 2002-05-18 14:44:43 得分 0

是<<深度探索c++对象模式>>Top

14 楼sbg(宝宝酥)回复于 2002-05-18 16:14:34 得分 0

意思就是编译器不会合成出   default   constructorTop

15 楼superzjx2000(承桴浮于海)回复于 2002-05-18 16:16:44 得分 0

rightTop

16 楼brapler(ANN)回复于 2002-05-19 11:10:45 得分 0

对的.Top

17 楼huang_yi_cn(蓝色的云)回复于 2002-05-19 12:01:28 得分 0

rightTop

18 楼dev_uoboy(【世界】)回复于 2002-05-19 12:40:15 得分 10

错的,你看看   Inside   The   C++   Object   Model   就会了解为什么是错的了。  
   
  看第二章。Top

19 楼yn_kmsf(悠然)回复于 2002-05-19 12:57:14 得分 0

dangranTop

20 楼freezhang(free)回复于 2002-05-19 14:54:44 得分 0

无成员数据的类无默认的构造函数  
  Top

21 楼kof99th(小虫)回复于 2002-05-19 18:58:00 得分 0

对,编译器会自动生成什么都不做的构造函数,仅用来产生对象。Top

22 楼cxlcc2000(水晶)回复于 2002-05-19 20:37:28 得分 0

在c++bulder中可以的Top

23 楼jinbing(若晴)回复于 2002-05-20 09:51:32 得分 0

综合  
  <<c++   primer>>,    
  <<   inside   c++   object   model   >>   ,    
  <<   Effective   c++>>   item   45,  
  是不是应该这样:  
  对于所有的类,如果不定义构造函数,则编译器生成默认构造函数,但不调用.  
   
  另,在vc中用debug跟踪空类,编译器没有调用构造函数.  
   
  请大家讨论.Top

24 楼jinbing(若晴)回复于 2002-05-20 09:55:35 得分 0

对不起,有句话说错了,  
  对于所有的类,如果不是"sbg(宝宝酥)说的四种情况"也没有声明构造函数,则编译器生成默认构造函数,但不调用.比如空类.  
   
  Top

25 楼jinbing(若晴)回复于 2002-05-20 12:55:28 得分 0

upTop

26 楼ajoo(聪明的一猪)回复于 2002-05-21 04:34:46 得分 0

ni   men   zou   huo   ru   mo   laTop

27 楼yu_yanjie(茉莉妃子)回复于 2002-05-21 08:30:49 得分 0

是对的Top

28 楼asuka(飞鸟)回复于 2002-05-21 08:54:46 得分 0

文字游戏Top

29 楼lizhongkun(泛型)回复于 2002-05-21 09:00:18 得分 0

对于所有的类,如果不是"sbg(宝宝酥)说的四种情况"也没有声明构造函数,则编译器生成默认构造函数,但不调用.比如空类.  
  不调用,你生出干什么,呵呵Top

30 楼ajoo(聪明的一猪)回复于 2002-05-21 10:03:27 得分 0

"不调用,你生出干什么"  
  he   he.   simple,   naive   le   ba?  
   
  at   runtime,   most   type   information   are   gone.   why   do   you   still   need   the   types?  
   
  Top

相关问题

  • 构造函数
  • 构造函数??
  • 构造函数
  • 函数构造
  • @@@@@@ 构造函数 @@@@@
  • WebService构造函数
  • 构造函数和析构函数
  • 构造函数是内联函数吗?
  • 构造函数与析构函数
  • 构造函数析构函数问题

关键词

  • 函数
  • 编译器
  • 构造函数
  • 调用
  • 类
  • 生成默认
  • sbg
  • 合成
  • constructor
  • 宝宝酥

得分解答快速导航

  • 帖主:jinbing
  • sbg
  • guyu_jj
  • dev_uoboy

相关链接

  • C/C++ Blog
  • C/C++类图书
  • C/C++类源码下载

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
北京创新乐知广告有限公司 版权所有, 京 ICP 证 070598 号
世纪乐知(北京)网络技术有限公司 提供技术支持
Copyright © 2000-2008, CSDN.NET, All Rights Reserved
GongshangLogo