基本的 C++ 动态分配问题

Basic C++ dynamic allocation issue

其中有一些基本方面我完全没有注意到。我有一个包含 set

的对象
PropertyContainer::PropertyContainer(string comFile, string resFile)
{
   set<Property*>* prCont = new set<Property*>();
...
}

主要是我在打电话

PropertyContainer* ptrPropertySet = new PropertyContainer(comFile, resFile);

此构造函数遍历并使用文件中的数据填充集合。

如果(当我仍在构造函数中时)我遍历集合,所有属性都在那里。

如果我返回 main() 并访问该集合,它是空的(我已经通过访问器函数完成了它并临时将其设为 public 并直接访问它,以确认我没有' t在访问函数中犯了一个错误)

这让我相信我缺少一个非常基本的编程原则。任何帮助或链接将不胜感激。

您正在定义一个局部变量 prCont,它隐藏了您的成员变量。

动态分配 std::sets 非常罕见,您可能不应该这样做。
如果您将成员声明为 set<Property*> prCont,它将在创建 PropertyContainer 时自动默认构造。