标题:问个构造函数的问题
取消只看楼主
songhuirong1
Rank: 2
等 级:论坛游民
帖 子:116
专家分:38
注 册:2010-6-15
结帖率:94.12%
已结贴  问题点数:20 回复次数:1 
问个构造函数的问题
在《C++ Primer》第三版第573页中有这么一段话:

    新用户常常会错误地认为如果不存在缺省构造函数则编译器会自动生成一个缺省构
造函数并将其应用在对象上以初始化类的数据成员对于我们定义的Account 类来说这
就不是真的系统既没有生成缺省构造函数也没有调用它对于含有类数据成员或继承来的
比较复杂的类这在部分上是对的可能会生成一个缺省构造函数但是它不会为内置或复
合型的数据成员如指针或数组提供初始值。

这段话的意思是说,如果一个类没有缺省构造函数的话,编译器不会自动为我们生成缺省构造函数。但是我在其它书上看到是说,如歌一个类没有缺省构造函数的话,编译器为我们自动生成缺省构造函数的。然后我写了段代码,如下:

class Data
{

};

void main()
{
    Data *pData = new Data;
}

这段代码能成功执行,那这句“ Data *pData = new Data;”代码在执行的时候,编译器是不是为我们自动生成了缺省的构造函数?否则这句代码是不能执行的。如果是这样的话,《C++ Primer》第三版上的那段话正确吗?求证!!!
还有就是“Data *pData = new Data”和“Data *pData = new Data()”这两句代码是等价的吧。
搜索更多相关主题的帖子: 编译器 用户 
2011-09-20 21:24
songhuirong1
Rank: 2
等 级:论坛游民
帖 子:116
专家分:38
注 册:2010-6-15
得分:0 
回复 4楼 xg5699
那你的意思是说书上的这段话是有错误的了。是吧。
2011-09-22 23:11



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-350433-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 1.829530 second(s), 8 queries.
Copyright©2004-2025, BCCN.NET, All Rights Reserved