在构造函数前加上explicit关键字,表示该构造函数只能被显示调用,不能被隐式调用。
构造函数显示调用场景:
T t1(value);//定义对象的同时,通过圆括号给出初值,显示调用构造函数
T *t1=new T(value);//通过new运算符创建对象,通过圆括号给出初值,显示调用构造函数
构造函数隐式调用场景:
T t1=value;//定义对象的同时,通过等号给出初值,会隐式调用构造函数
fun(value);//函数传参,如果形参为类类型,会隐式调用构造函数
版权声明:本文为wo198711203217原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。