C++ C++;对象数组为每个对象返回相同的字符*
printObj();只是不能objArr[k]getObjName() 这是我创建的setter和getter:C++ C++;对象数组为每个对象返回相同的字符*,c++,arrays,pointers,C++,Arrays,Pointers,printObj();只是不能objArr[k]getObjName() 这是我创建的setter和getter: for (int k = 0; k < playerCount; ++k) { objArr[k].printObj(); } 我做错了什么 *我不能使用向量和字符串这是常见的指针错误。 如果您的类/数据结构拥有并分配了指针,那么您应该实现自己的复制构造函数,该构造函数将为char*name分配新内存。 现在所有对象都指向一个字符数组,而不是拥有自己的字符数组 如果
for (int k = 0; k < playerCount; ++k) {
objArr[k].printObj();
}
我做错了什么
*我不能使用向量和字符串这是常见的指针错误。 如果您的类/数据结构拥有并分配了指针,那么您应该实现自己的复制构造函数,该构造函数将为char*name分配新内存。 现在所有对象都指向一个字符数组,而不是拥有自己的字符数组 如果你不明白我在说什么,请先阅读以下内容:
错误最有可能发生在
MyObject
类中存储和管理objName
的方式上。您可以通过发布类的代码获得更多帮助。
for (int k = 0; k < playerCount; ++k) {
objArr[k].printObj();
}
char *MyObject::getObjName() const {
return this->objName;
}
void MyObject::setObjName(char *name) {
this->objName = name;
}