C++中的explicit关键字
class WTF { public: explicit WTF(int, float f = 0.1) {} //explicit只对类型转换构造函数有效 //表明禁止使用这个构造函数进行隐式类型转换 }; void FKU(const WTF&) { } int main() { int val = 3; FKU(val); //这里会出现编译错误 //explicit 只对 “只用一个参数就可以调用的构造函数有效(可以是n个参数,但是有n-1个默认参数)” 有效 //而不是C++ primer中文版里说的 "只对只有一个参数的构造函数有效" return 0; }
explicit只对类型转换构造函数有效, 表明禁止使用这个构造函数进行隐式类型转换
浙公网安备 33010602011771号