struct X
{
X() { std::cout << "X()\n"; }
X(int) { std::cout << "X(int)\n"; }
};
const int answer = 42;
int main()
{
X(answer);
}
Я б також очікував, що це надрукується
X(int)
, оскількиX(answer);
може бути інтерпретована як кидок зint
доX
, або- нічого взагалі, тому що це
X(answer);
можна трактувати як оголошення змінної.
Однак він друкуєтьсяX()
, і я не уявляю, навіщо X(answer);
називати конструктор за замовчуванням.
БОНУСНІ ТОЧКИ: Що б мені змінити, щоб отримати тимчасову замість декларації змінної?