问一个C++构造函数的问题

对于一个类定义,下列叙述中错误的是______。A.如果已经定义了构造函数和拷贝构造函数,编译器不会生成任何构造函数B.如果没有定义不带参数的构造函数,编译器将一定生成一... 对于一个类定义,下列叙述中错误的是______。
A.如果已经定义了构造函数和拷贝构造函数,编译器不会生成任何构造函数
B.如果没有定义不带参数的构造函数,编译器将一定生成一个缺省的构造函数
C.如果没有定义构造函数,编译器将生成一个缺省的构造函数和一个拷贝构造函数
D.如果没有定义拷贝构造函数,编译器将生成一个拷贝构造函数

答案选B,求解释一下原因,分析一下各个选项
展开
 我来答
百度网友5762a4b
2012-06-29 · TA获得超过413个赞
知道小有建树答主
回答量:415
采纳率:0%
帮助的人:387万
展开全部
默认构造函数只在没有定义任何构造函数的时候系统才会自动生成。
拷贝构造函数也是构造函数
拷贝构造函数在没有显示定义的情况下系统会自动生成一个默认的拷贝构造函数

b项如果定义了带参数的构造函数,也不会生成默认构造函数了,所以是错的
yiliangwu880
2012-06-29 · 超过12用户采纳过TA的回答
知道答主
回答量:45
采纳率:0%
帮助的人:32.4万
展开全部
错误的是:B
C++标准有这样描述:
“只有一个类没有定义构造函数时,编译器才会自动生成缺省的构造函数”
所以看出来A对,B错。
另外C++标准有这样描述:
“只有一个类没有定义拷贝构造函数时,编译器才会自动生成缺省的拷贝构造函数”
所以C,D是对的。
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
freezhuang
2012-06-29 · TA获得超过143个赞
知道小有建树答主
回答量:165
采纳率:0%
帮助的人:116万
展开全部
这属于构造函数和析构函数的基本定义问题。
如果没有定义构造和析构函数,编译器默认生成。
B.如果没有定义不带参数的构造函数,编译器将一定生成一个缺省的构造函数
这里不管有没有带参数,只要有构造函数,编译器就不会生成缺省的构造函数。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
郑地1号线
2012-06-29
知道答主
回答量:19
采纳率:0%
帮助的人:5.5万
展开全部
这个题其实可以用排除法来做,对于选项中的带有绝对意思的语句,可疑性最大。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式