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?