7.43
class NoDefault {
public:
NoDefault(int i) { }
};
class C {
public:
C() : def(0) { }
private:
NoDefault def;
};
7.44
不合法,NoDefault没有默认的构造函数,所以vector<NoDefault> vec(10)将不能初始化
7.45
合法,C有默认的构造函数
7.46
a. 不一定 有时候编译器提供的类可以满足要求而不用自己写
b. 不正确 默认构造函数是在没有提供初始值的时候使用的,有时候有参数的构造函数也会提供默认值,也定义了默认构造函数
c. 不正确
d. 只有当我们没有定义任何构造函数 ,编译器才会这么做