#include <iostream>
using namespace std;
class Y {
public:
Y(int ) {
cout << "Y(int)\n";
}
Y(const Y&) {
cout << " Y(const Y&)\n";
}
};
int main() {
Y obj1 = 2; // Line 1
}
输出:Y(int)
预期输出:Y(int) Y(const Y&)
问题> 根据我的理解,第 1 行会先创建一个临时对象 Y(2),然后将临时对象赋值给obj1
. 因此,我期望两者Y(int)
都Y(const Y&)
被调用。但是 vs2010 的输出只报告第一个(即Y(int)
)。为什么?