【发布时间】:2019-02-19 02:48:08
【问题描述】:
我有 3 个文件。 main.cpp、object.h 和 object.cpp。
在 main 中,我试图创建一个包含 100 个对象指针的数组。然后,在创建数组之后,我进入一个循环并遍历每个“i”元素,并将该元素的值作为指向新临时对象的指针分配给将在字符串中传递的新临时对象。 这样做的基本前提是我可以使用它来存储多个对象,这些对象内部包含信息,之后我可以通过在这些点上调用函数来打印这些信息。我需要使用指针数组来执行此操作。
本质上,我想将数据存储在一个对象指针数组中,该数组将使用一个新的运算符来存储它每次迭代。但是,我什至不确定如何创建数组,因为它需要传入要调用的变量。
我试过 Object *ptr = new Object[arraySize];我确信这会起作用,但它需要参数,因为对象被定义为在其中获取变量。
main.cpp
#include <iostream>
#include "object.h"
int main()
{
Object *ptr = new Object[5];
for(i = 0; i < 5, i++) {
ptr[i] = "Test";
ptr -> print();
}
}
object.cpp
#include "object.h"
#include <iostream>
using namespace std;
Object::Object(string words)
{
private_words = words;
}
void Object::print()
{
cout << private_words << endl;
}
object.h
#ifndef OBJECT_H
#define OBJECT_H
#include <string>
using namespace std;
class Object
{
public:
Object(string words);
void print();
private:
string private_words;
};
#endif
关于我尝试传入参数并同时将其设为数组这一事实,我收到了多个难以理解的错误。 Object *ptr = new Object()[5] 不起作用。
【问题讨论】:
-
创建一个包含 100 个对象指针的数组(您在问题中要求但我不确定您是否真的想要),
Object *ptr[100];。请注意,这 100 个指针未初始化,当前指向未定义的某个位置。在您将指针指向一个有效的Object实例(可能是用new创建的,但try to avoidnewwhere possible)之前,不要尝试取消引用指针(获取指针处的对象)。
标签: c++ arrays dynamic-memory-allocation