0
将静态成员变量定义为新对象并且永远不删除它可以吗?例如可以跳过删除动态分配的静态成员变量吗?
class A
{
static vector<BaseClass*> p;
};
vector<BaseClass*> A::p = vector<BaseClass*>{new DerivedClassA, ...};
我觉得没有内存泄漏问题,因为P是静态的,它的生命周期是在整个程序和它的内存将被操作系统的程序终止时被释放。它的记忆行为看起来几乎和以下类似
class A
{
static vector<unique_ptr<BaseClass>> p;
};
vector<unique_ptr<BaseClass>> A::p = ...;
但我不确定我是否正确。
有没有必要使用新的,只是把INT放在堆栈 – 4pie0
我只使用int作为示例。 – user1899020
我也是指int只作为示例 – 4pie0