9.类初探

9.1.为什么建议使用=defalut显示写出默认构造函数?

 1 #include"pch.h"
 2 #include <iostream>
 3 #include <vector>
 4 using namespace std;
 5 
 6 class A
 7 {
 8 public:
 9     A(int a) {}
10 };
11 
12 int main()
13 {
14     vector<A> obj;
15     obj.resize(1);
16     return 0;
17 }

上面这段代码编译报错:没有找到合适的默认构造函数。有很多场景可能没办法面面俱到,但是从这里可以看出一些端倪,如果很简单的一个操作(习惯)让你避免了上述的问题,你应该每次都设置默认构造函数!当一个定义一个不使用任何初始值的类类型的时候!

9.2.如果在私有作用域中没有为const或引用类型变量初始化,怎么在构造函数中做到这一点?

如果你在构造函数内部给他们赋值,显然是错误的,不能给引用或者const赋值!可以在初始化列表中完成初始化!

9.3.explicit作用?

在只有一个参数的构造函数中使用,抑制构造函数定义的隐式转换,explicit构造函数只能用于直接初始化,不允许使用拷贝初始化!

posted @ 2019-06-09 20:59  Royzzzzz  阅读(87)  评论(0编辑  收藏  举报