My question concerns whether I explicetely need to declare a destructor in my main class and in the QSharedData's inherited one, in order to prevent memory leaks. In this example I have an Employee class which handles its data through EmployeeData.
So do I need to declare
~EmployeeData(){}
and
~Employee()
to prevent memory leaks or it's handled by QSharedData itself that deallocates all its resources even without an explicit destructor, when Employee gets out of scope?
Here an example being implemented:
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;
}
Thanks in advance