[英]how should I store objects
我有一个名为human
的类,其中包含int age, int height
, QString name
等信息。
用户单击按钮按钮以添加新的人类信息,并且当用户输入信息时,程序会创建新的人类对象(例如john,johan等)。
我想存储所有对象,然后希望能够访问每个单独的对象及其成员。 什么是最好的存储对象?
我当时想做的是声明static std::vector<human*> humanVector;
在头文件上
然后
humanVector.push_back( new human(name, age, height));
听起来是正确的还是我需要采取其他方式或使用不同的方法,例如static std::vector<std::shared_ptr<human>> humanVector;
如果使用静态std::vector<human*> humanVector;
,需要确保在向量作用域之前释放向量中的对象,否则会导致内存泄漏问题。
使用std::vector<std::shared_ptr<human>> humanVector;
是异常安全的,它负责构造对象。 std :: shared_ptr是一个智能指针,它通过指针保留对象的共享所有权。 当发生以下任一情况时,该对象将被销毁并释放其内存:拥有该对象的最后剩余的shared_ptr被销毁。 拥有该对象的最后剩余的shared_ptr通过operator =或reset()分配了另一个指针。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.