struct X
{
X() { std::cout << "X()\n"; }
X(int) { std::cout << "X(int)\n"; }
};
const int answer = 42;
int main()
{
X(answer);
}
Spodziewałbym się, że to też się wydrukuje
X(int)
, ponieważX(answer);
można to zinterpretować jako odlew zint
doX
lub- w ogóle nic, ponieważ
X(answer);
mogłoby być zinterpretowane jako deklaracja zmiennej.
Jednak drukujeX()
i nie mam pojęcia, dlaczego X(answer);
miałbym wywołać domyślny konstruktor.
PUNKTY DODATKOWE: Co musiałbym zmienić, aby uzyskać tymczasową zamiast zmiennej deklarację?