我们来看一个代码
cpp
class A {
public:
A(int x) {
cout << "123" << endl;
}
A(int x, int y) {
cout << "456" << endl;
}
}a = (1, 2);
int main() {
}
这个代码的输出结果是什么?
答案是 123
因为编译器把 ( 1 , 2 ) 识别为 了逗号运算符,就是 2 ,然后调用了单参构造函数
如果代码改为
cpp
class A {
public:
A(int x) {
cout << "123" << endl;
}
A(int x, int y) {
cout << "456" << endl;
}
}a (1, 2);
int main() {
}
那么结果才是 456