标签:
C++中,explicit关键字用于修饰单参数的构造函数,用于避免隐式类型转换。
例如,当不适用explicit关键字修饰类的构造函数时:
class A { public: A(int initalValue=0); private: int storedValue; };
此时,主函数代码:
int main() { A m =3; }
main函数是可以正常运行的,但是当用explicit修饰构造函数时,
class A { public: explicit A(int initalValue = 0); private: int storedValue; };
仍然调用主函数则会报错:无法从"int"转换为"A"。
因此,此时类对象的初始化必须采用如下形式:
A m(3);
标签:
原文地址:http://www.cnblogs.com/acode/p/4543290.html