Назад к вопросам
JuniorТеорияЧасто
Что выведет программа?
#include <iostream>
struct Note {
Note(char c) { std::cout << c; }
};
struct Pair {
Note first;
Note second;
Pair() : second('2'), first('1') { std::cout << '3'; }
};
int main() { Pair p; }123
- Ждать
213: поля инициализируются в порядке объявления в классе, а не в том порядке, в каком их называет список инициализации. - Ждать
312: все поля инициализируются до того, как начнёт выполняться тело конструктора, поэтому тело печатает3последним.
- Что пойдёт не так, если инициализатор поля читает поле, объявленное ниже него?
- В каком порядке уничтожаются
firstиsecond, когдаpвыходит из области видимости?