Я написал следующий фрагмент кода:
void foo()
{
struct _bar_
{
int a;
} bar;
cout << "Value of a is " << bar.a;
}
и скомпилировал его с помощью g++ 4.2.1 (Mac). Вывод: "Значение a равно 0".
Можно ли сказать, что элементы данных структуры в С++ всегда инициализируются по умолчанию (по сравнению с c)? Или наблюдаемый результат просто совпадение?
Я могу себе представить, что структуры в С++ имеют конструктор по умолчанию (поскольку структура и класс почти одинаковы в С++), что объясняет, почему элемент данных a из строки инициализируется равным нулю.