上述代码中,A ex = 10; 在编译时,进行了隐式转换,将 10 转换成 A 类型的对象,然后将该对象赋值给 ex,等同于如下操作:为了避免隐式转换,可用 explicit 关键字进行声明:#include <cstring>#include <iostream>using namespace std;class A { public: int var; explicit A(int tmp) { var = ...
} 上述代码中,A ex = 10; 在编译时,进行了隐式转换,将 10 转换成 A 类型的对象,然后将该对象赋值给 ex, (个人觉得文章这里存在错误,当A ex=10进行编译时,相当于A ex(10),调用构造函数,进行了隐式转换,但是并不会创建匿名对象赋值给ex) 等同于如下操作: 为了避免隐式转换,可用 explicit 关键字进行声明...