在不知道将创建多少个对象的情况下,可以使用动态内存分配来初始化对象指针的向量。以下是一个示例代码:
#include <iostream>
#include <vector>
class MyClass {
public:
MyClass() {
std::cout << "MyClass constructor" << std::endl;
}
};
int main() {
std::vector<MyClass*> objVector;
// 假设不知道要创建多少个对象,可以使用循环来动态分配内存并初始化对象指针
int numObjects = 5; // 假设要创建5个对象
for (int i = 0; i < numObjects; i++) {
MyClass* newObj = new MyClass(); // 动态分配内存并调用构造函数初始化对象
objVector.push_back(newObj); // 将对象指针添加到向量中
}
// 使用对象指针进行操作
for (const auto& objPtr : objVector) {
// 对象指针可以通过箭头运算符来访问对象的成员函数和成员变量
// 例如:objPtr->someFunction();
}
// 释放动态分配的内存
for (const auto& objPtr : objVector) {
delete objPtr; // 释放对象指针指向的内存
}
return 0;
}
在上述示例中,我们使用了std::vector
来存储对象指针。通过循环动态分配内存并初始化对象,然后将对象指针添加到向量中。之后,我们可以使用对象指针进行操作。最后,记得释放动态分配的内存,避免内存泄漏。
请注意,这只是一个示例代码,实际应用中可能需要根据具体情况进行适当的修改和扩展。
领取专属 10元无门槛券
手把手带您无忧上云