C++Primer第五版 7.5.3节练习

练习7.43;假定有一个名为NoDefault的类,它有一个接受int的构造函数,但是没有默认构造函数。定义类C,C有一个NoDefault类型的成员,定义C的默认构造函数。
答:见程序 练习7.43.cpp 说明:C不能调用,因为NoDefault缺少默认的构造函数
练习7.44:下面这条声明合法吗?如果不,为什么?

Vector<NoDefault> vec(10);

答:不合法,NoDefault缺少默认的构造函数

练习7.45:如果在一个练习中定义的vector的元素类型是C,则声明合法吗?为什么?
答;不合法,还是因为NoDefault缺少默认的构造函数

练习7.46:下面哪些论断是不正确的?为什么?
(a) 一个类必须至少提供一个构造函数 //正确
(b) 默认构造函数是参数列表为空的构造函数。//正确
(c) 如果对于类来说不存在有意义的默认值,则类不应该提供默认构造函数
//错误,参看262页7.5.3节默认构造函数的作用。

(d) 如果类没有定义默认构造函数,则编译器将为其生成一个并把每个数据成员初始化成相应类型的默认值。
//错误:编译器还没有那么强大,编译器只是按照自己的理解来合成一个默认构造函数

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值