Re[7]: Ошибка, если конструктор определен в h-файле (этюд?)
От: Videoman Россия https://hts.tv/
Дата: 05.07.23 21:01
Оценка: 6 (1)
Здравствуйте, Shmj, Вы писали:

S>- не компилируется. unique_ptr хочет заранее знать какой класс даже в этом случае, не смотря на то, что конструктор только декларирован — ему пофиг.


Потому что дело не только в конструкторе, но и в деструкторе. std::unique_ptr<Class2> деструктор для неполного объекта также не может создать. С деструктором Class1 проделай тоже самое:
сlass Class2;

class Class1
{
public:
    Class1();
    ~Class1();
private:
    std::unique_ptr<Class2> ptr;
};

//... тут все тоже самое
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.