| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 834 人关注过本帖
标题:默认构造函数的问题?
只看楼主 加入收藏
newyj
Rank: 2
等 级:新手上路
威 望:3
帖 子:542
专家分:0
注 册:2008-1-4
收藏
 问题点数:0 回复次数:6 
默认构造函数的问题?
C++和JAVA中的默认构造函数 赋给数据成员 的值是否 一样
在C++中 默认时赋给数据成员的值都是什么?
整型是什么? 布尔值是什么? 指针又是什么?
谢谢了
搜索更多相关主题的帖子: 函数 构造 
2008-05-18 21:41
p1s
Rank: 4
等 级:贵宾
威 望:10
帖 子:454
专家分:3
注 册:2005-11-4
收藏
得分:0 
在C++中,每个类都有且必须有构造函数。如果用户没有自行编写构造函数,则C++自动提供一个无参数的构造函数,称为默认构造函数。这个默认构造函数不做任何初始化工作。

以上摘自《易学C++》第十四章,希望对LZ有帮助。
2008-05-19 20:40
找工作中
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:41
专家分:114
注 册:2008-5-21
收藏
得分:0 
[bo]以下是引用 [un]p1s[/un] 在 2008-5-19 20:40 的发言:[/bo]

在C++中,每个类都有且必须有构造函数。如果用户没有自行编写构造函数,则C++自动提供一个无参数的构造函数,称为默认构造函数。这个默认构造函数不做任何初始化工作。

以上摘自《易学C++》第十四章,希望对LZ有帮助。 ...

显然是错的。
如果一个类没有任何构造函数。那么,至少当这个类有以下情况之一的时候,默认构造函数并不是不作任何初始化工作:
1.如果有基类有非trivial构造函数,譬如说,你从std::string派生
2.如果有成员对象有非trivial构造函数,譬如说,你有一个std::string成员
3.类层次上有virtual函数
4.类层次上有virtual继承
2008-05-21 20:09
p1s
Rank: 4
等 级:贵宾
威 望:10
帖 子:454
专家分:3
注 册:2005-11-4
收藏
得分:0 
[bo]以下是引用 [un]找工作中[/un] 在 2008-5-21 20:09 的发言:[/bo]


显然是错的。
如果一个类没有任何构造函数。那么,至少当这个类有以下情况之一的时候,默认构造函数并不是不作任何初始化工作:
1.如果有基类有非trivial构造函数,譬如说,你从std::string派生
2.如果有成员对象有非trivial ...

在钱能老师的第一版和第二版教材中,对于默认构造函数的描述都是“仅负责创建对象,不做任何初始化工作。”当然,你说的也很严谨,是正确的。可是当初学者在学习的时候往往是先接受构造函数这个概念,然后再了解平凡、非平凡、继承的问题。如果一下子把什么都交给他,他反而可能搞不懂了。所以我比较支持钱能老师的这种写法,学的时候不要去钻牛角尖。等到学会了,自己再好好研究一下倒是很有必要。
学C++不能一口吃成一个胖子的。现在的现象就是,很多高中学生跑去初中嘲笑说初中学的“负数没有平方根”根本是错误的。
2008-05-22 15:19
找工作中
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:41
专家分:114
注 册:2008-5-21
收藏
得分:0 
[bo]以下是引用 [un]p1s[/un] 在 2008-5-22 15:19 的发言:[/bo]


在钱能老师的第一版和第二版教材中,对于默认构造函数的描述都是“仅负责创建对象,不做任何初始化工作。”当然,你说的也很严谨,是正确的。可是当初学者在学习的时候往往是先接受构造函数这个概念,然后再了解平凡、非平凡 ...

说的很有道理 :)
2008-05-22 18:01
bibingyan
Rank: 1
来 自:湖南长沙
等 级:新手上路
帖 子:123
专家分:0
注 册:2008-3-16
收藏
得分:0 
意思是说我们这些C++的初学者,学习到的只是它的最基础的一些概念而已吗?而它更深沉的东西我们根本就没有接触到。。

不嫌恶地狱,不迷恋人间,不羡慕天堂。
2008-05-26 23:15
中学者
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:20
帖 子:3554
专家分:80
注 册:2007-9-14
收藏
得分:0 
[bo][un]找工作中[/un] 在 2008-5-21 20:09 的发言:[/bo]


显然是错的。
如果一个类没有任何构造函数。那么,至少当这个类有以下情况之一的时候,默认构造函数并不是不作任何初始化工作:
1.如果有基类有非trivial构造函数,譬如说,你从std::string派生
2.如果有成员对 ...

明显看过深度探索C++对象模型.........我不赞同LZ得说法....如果一开始就给个错误概念,扎根以后很难改变再接受.....

樱花大战,  有爱.
2008-05-28 22:58
快速回复:默认构造函数的问题?
数据加载中...
 
   



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

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