我有一个成员函数,它必须创建其类的两个对象(在内存中)。所以我必须返回一个指针"p",我想通过p[0]和p[1]访问对象。我只知道关键字new,为一个对象分配内存。是否有类似的方法为2个对象分配连续内存?我也可以通过使用关键字new两次创建一个2单元格数组(两个指针),但我更喜欢一个更简单的解决方案(p[0]和p[1])。
MyClass * p = new MyClass[2];
,记得用:
delete[] p;
使用std::vector
,它将为您处理内存管理。
#include <vector>
// This will dynamically allocate an array of 2 instances
// of you MyClass type
std::vector<MyClass> classes(2);
// now you have classes[0] and classes[1]
std::vector
是可调整大小的,并且将为您处理所有内存管理开销(在这种情况下您不需要调用new
或delete
)。