Нужно ли явно объявлять деструктор в унаследованном классе QSharedData?

Мой вопрос касается того, нужно ли мне явно объявлять деструктор в моем основном классе и в наследуемом классе QSharedData, чтобы предотвратить утечки памяти. В этом примере у меня есть класс Employee, который обрабатывает свои данные через EmployeeData.

Так что мне нужно объявить

~EmployeeData(){}

а также

~Employee()

чтобы предотвратить утечки памяти, или это обрабатывается самим QSharedData, который освобождает все свои ресурсы даже без явного деструктора, когда Сотрудник выходит из области видимости?

Вот пример реализации:

class EmployeeData : public QSharedData
{
public:
   EmployeeData() {}
  ~EmployeeData(){}
  // Some data here
   EmployeeInfo *info=nullptr;
};

Employee::Employee()
{
   data = new EmployeeData();
   data->info = new EmployeeInfo();
}

Employee::~Employee()
{
   if(data)
   {
     delete data->info;
   }
delete data;
}

заранее спасибо

0 ответов

Другие вопросы по тегам