Странная инициализация нуля с помощью g ++

Я столкнулся со странным поведением следующего кода, когда играл с инициализацией целых чисел с помощью g ++ 4.4.3.

  int main()

    {

        int x(int());

        int y = int();

        cout << x << "  " << y <<  endl;
    }

результат:

1 0

Значение «y» равно 0, как и ожидалось, но значение x странно «1»!

В VS2008 выдает следующую ошибку ссылки (объявление функции, но без определения):

unresolved external symbol "int __cdecl x(int (__cdecl*)(void))"

Кто-нибудь может объяснить это странное поведение g ++?

20
задан Viktor Apoyan 28 April 2011 в 07:38
поделиться