【发布时间】:2020-03-05 17:47:08
【问题描述】:
我有一个班级
class ListOfControllers
{
public:
ListOfControllers();
~ListOfControllers();
QList<RmgController> rmgControllers;
QJsonObject toJson() const;
void fromJson(QJsonObject obj);
};
在fromJson我想读取一个json并填写QList<RmgController> rmgControllers:
void ListOfControllers::fromJson(QJsonObject obj)
{
.
.
.
rmgControllers.clear();
for (...)
{
RmgController rmg;
rmg.fillWithValues();//fill the object with values from json
rmgControllers.push_back(rmg);
//at this point the DESTRUCTOR of RmgController is being called and the filled values CLEARED
}
}
当我离开对象创建的范围时,RmgController 的析构函数会引发并清除所有填充的值,因此列表 (rmgControllers) 包含一些具有默认值的对象,而不是从 json 读取的值。
【问题讨论】:
-
也许你没有关注the rules of three/five/zero?没有minimal reproducible example,除了猜测之外很难做。
标签: c++ list qt class constructor