#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 (целое число)
Ожидаемый результат: Y(int) Y(const Y&)
Вопрос> Насколько я понимаю, Строка 1 сначала создаст временный объект Y(2), а затем назначит временный объект obj1
. Таким образом, я ожидаю, что будут вызваны как Y(int)
, так и Y(const Y&)
. Но вывод vs2010 сообщает только о первом (т.е. Y(int)
). Почему?