这是我的问题
Class MClass {
public:
void Add(OtherClass* objects) {
_objects = objects;
}
private:
OtherClass* _objects;
}
//otherfile.cpp
void Setup() {
MClass myObj;
OtherClass obj[NUMBER_OF_OBJECTS];
//obj initialization here
//...
myObj.Add(obj);
}
这将导致RT错误,因为* obj在函数主体结束后减小。
但是,如何使这个有效呢?
我喜欢先初始化一个对象,然后再将其分配给其他类。
编辑
我不想在这里使用存储类或其他东西,我只想要一个原始数组,因为使用它非常昂贵。它的功能在这里不会减轻我的问题。
那么我该如何以原始数组的方式进行呢?
最佳答案
Class MClass {
public:
void Add(std::vector<OtherClass> objects) {
_objects = std::move(objects);
}
private:
std::vector<OtherClass> _objects;
}
//otherfile.cpp
void Setup() {
MClass myObj;
std::vector<OtherClass> obj(NUMBER_OF_OBJECTS);
myObj.Add(std::move(obj));
}