Мой вопрос касается того, нужно ли мне явно объявлять деструктор в моем основном классе и в наследуемом классе 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;
}
заранее спасибо
Задача ещё не решена.
Других решений пока нет …