作用:显示的构造函数,因为构造函数有一个参数时,会有隐式的转换,参数有多个会自动的显示转换,所以不用考虑。拷贝构造函数不要用explicit。对应的还有显示转换implicit。
例子:
# 没加头文件凑合着看
class A
{
A(int m = 1):_m(m){};
// elplicit A(int m = 1):_m(m){};
// 流程2.会报错,原因是我们没有重载opertator=,m不能隐式赋值给_m
~A();
public:
int getM()
{
return _m;
}
private:
int _m;
}
int main()
{
//1.
A a;
cout << a.getM() << endl; //输出1
//2.
A a1(2);
cout << a.getM << endl; //输出2
}