Здравствуйте, rg45, Вы писали:
S>>Это да. Просто хотелось понять, как Shmj умудрялся работать с экземплярами Class1, если в Class1 не было явно описанного пользователем конструктора.
R>Ну так, возможно, до него все работало и с автоматически сгенерированным конструктором.
"Но черт возьми, Холмс, как?"
Мне вот было любопытно, как в Class1 создается и инициализируется что-то связанное с Class2, при этом не имея определения Class2.
Но, похоже, там просто unique_ptr, который изначально пустой, а значение ему назначается позже. Что-то вроде:
class Class1 {
std::unique_ptr<Class2> ptr_member_;
void do_something(); // Реализовано в .cpp-файле.
...
};
void Class1::do_something() {
if(!ptr_member_) ptr_member_ = std::make_unique<Class2>(...);
...
}
Тогда работа дефолтного, сгенерированного компилятором конструктора становится понятной.