【发布时间】:2013-05-20 22:30:00
【问题描述】:
#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(常量 Y&)
问题> 根据我的理解,第1行会先创建一个临时对象Y(2),然后将临时对象赋值给obj1。因此,我希望 Y(int) 和 Y(const Y&) 都被调用。但是 vs2010 的输出只报告第一个(即Y(int))。为什么?
【问题讨论】: