关键字:
explicit //强制按标准格式初始化一个对象
示例1:
class A {
A(int) {}
A(int, int) {}
operator int() const { return 0; }
};
A a1 = 1; //隐式转换为A a1 = A(1);
A a2(2, 2); //标准形式
A a3 = {4, 5}; //隐式转换为A a3 = A(4, 5)
int i = a1; //隐式转换
示例2:
class A {
explicit A(int) {}
explicit A(int, int) {}
explicit operator int() const { return 0; }
};
//错误 A a1 = 1;
A a2(2, 2); //标准形式
//错误 A a3 = {4, 5}; //隐式转换为A a3 = A(4, 5)
//错误 int i = a1;