Здравствуйте, so5team, Вы писали:
S>Но мне кажется, что Class1 по любому должен создаваться через какую-то фабрику, а не просто как значение на стеке (или в агрегате).
Да и на стеке тоже должно воспроиводиться, почему нет. привожу ниже полный листинг моего варианта:
| | Class1.h |
| | #pragma once
#include <memory>
class Class1
{
public:
Class1();
~Class1();
private:
class Impl;
std::unique_ptr<Impl> m;
};
|
| | |
| | Class1.cpp |
| | #include "Class1.h"
class Class1::Impl { };
Class1::Class1() { }
Class1::~Class1() { }
|
| | |
| | main.cpp |
| | #include "Class1.h"
int main()
{
Class1 c;
}
|
| | |
Это успешная версия. После переноса конструктора, появляется ошибка.