让我们考虑以下代码:
class A{
public:
A(int x){}
};
class B{
public:
B(A a){};
};
int main() {
B b = 5;
return 0;
}
在编译编译器时抱怨:
/home/test/main.cpp:80: candidate constructor not viable: no known conversion from 'int' to 'A' for 1st argument
我不想创建B(int)
构造函数 - 我希望编译器将其隐式转换int
为A
对象。
编辑:
直接初始化的工作方式如下:
B b(5);
是否可以改用赋值运算符?