Информация об изменениях

Сообщение Re[22]: Ошибка, если конструктор определен в h-файле (этюд?) от 06.07.2023 9:25

Изменено 06.07.2023 9:26 rg45

Re[22]: Ошибка, если конструктор определен в h-файле (этюд?)
Здравствуйте, so5team, Вы писали:

S>Но мне кажется, что Class1 по любому должен создаваться через какую-то фабрику, а не просто как значение на стеке (или в агрегате).


Да и на стеке тоже должно воспроиводиться, почему нет. привожу ниже полный листинг моего варианта:

  Class1.h
#pragma once

#include <memory>

class Class1
{
public:

   Class1();
   ~Class1();

private:

   class Impl;

   std::unique_ptr<Impl> v;
};

  Class1.cpp
#include "Class1.h"

class Class1::Impl { };
Class1::Class1() { }
Class1::~Class1() { }

  main.cpp
#include "Class1.h"

int main()
{
   Class1 c;
}


Это успешная версия. После переноса конструктора, появляется ошибка.
Re[22]: Ошибка, если конструктор определен в h-файле (этюд?)
Здравствуйте, 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;
}


Это успешная версия. После переноса конструктора, появляется ошибка.