3人赞同了该回答
显式,C++提供了关键字explicit,声明为explicit的构造函数不能在隐式转换中使用class Test1{public:Test1(int n) { num = n; } //普通构造函数private:int num;};class Test2{public:explicit Test2(int n) { num = n; } //explicit(显式)构造函数private:int num;};int main(){Test1 t1 = 12; //隐式调用其构造函数,成功Test2 t2 = 12; //编译错误,不能隐式调用其构造函数Test2 t3(12); //显式调用成功return 0;}都是复制粘贴的,因为问题比较简单,怎么省事怎么来了.
发布于2022-12-27