Как правильно инициализировать свойство класса, представляющее собой класс? C++
Есть собственный класс Terminal. Его свойство window - это переменная типа Window:
class Terminal:
{
private:
Window window;
public:
Terminal(int x, int y);
}
Как правильно объявить и инициализировать ее в конструкторе? Ведь она уже объявлена. Попытался сделать через прямую инициализацию:
Terminal::Terminal(int x, int y) {
window(x, y);
}
Выдало ошибку. Как вариант - использовать копирующую инициализацию:
window = Window(x, y)
Но я читал, что использование копирующей инициализации для объектов (особенно тяжелых) - плохо. Как правильно провести инициализацию в таком случае? Нужно ли применять список инициализаторов или это неправильный подход?
Ответы (1 шт):
Вот так:
Terminal::Terminal(int x, int y):window(x, y)
{
}
Учтите - в каком порядке бы вы их (инициализаторы) не записали, порядок инициализации - базовые конструкторы, а затем члены в порядке появления их в объявлении класса.