struct X
{
X() { std::cout << "X()\n"; }
X(int) { std::cout << "X(int)\n"; }
};
const int answer = 42;
int main()
{
X(answer);
}
Tôi đã mong đợi cái này sẽ in
X(int)
, bởi vìX(answer);
có thể được hiểu là diễn từint
đếnX
, hoặc- không có gì cả, vì
X(answer);
có thể được hiểu là khai báo của một biến.
Tuy nhiên, nó in raX()
và tôi không biết tại sao X(answer);
lại gọi hàm tạo mặc định.
ĐIỂM THƯỞNG: Tôi sẽ phải thay đổi gì để có được khai báo tạm thời thay vì khai báo biến?