Есть класс (допустим обертка массива QString), назовем его MyClassType.
Есть функция которая из другого типа данных (назовем его MyDataType) конструирует объект типа MyClassType:
MyClassType makeMyClassFromData (MyDataType data) {...};
Хочу сделать конструктор
MyClassType (MyDataType data);
В котором вызывается эта функция и получаемый с помощью неё объект становился создаваемым.
Копировать отдельно по полям кажется нудным и неправильным.
Как то можно в конструкторе полностью заменить все данные создаваемого объекта, всеми данными объекта, полученного в конструкторе ?
Поидее это конструткором копирования делается. Но как его применить в нашем конструкторе. Вроде пробовал:
MyClassType (MyDataType data) : MyClassType(makeMyClassFromData(data)) {
;
}
Сказал что нельзя так.
illegal member initialization: 'MyClassType' is not a base or member
Или для этого просто нужно явно задать конструктор копирования? ...
Попробовал задать конструктор копирования - та же ошибка
illegal member initialization: 'MyClassType' is not a base or member
.