有没有更简单/更好的方法来做到这一点?

时间:2019-02-06 16:34:16

标签: arrays class c++11 pointers

我正在尝试从文件中读取一些输入,然后将它们传递给指向GasPump对象的指针数组,这是我使其工作的唯一方法,我想知道是否存在更简单的方法。

inputFile >> thing1 >> thing1 >> thing1 >> thing1
          >> thing2 >> thing2 >> thing2 >> thing2
          >> thing3 >> thing3 >> thing3 >> thing3;
GasPump* station[3] = {new GasPump(thing1, thing1, thing1),
                       new GasPump(thing2, thing2, thing2),
                       new GasPump(thing3, thing3, thing3)};

这是我的初衷,但我不确定这是否正确:

GasPump* station = new GasPump[3];
for (int i = 0; i < 3; i++)
{
    intputFile >> thing >> thing >> thing >> thing;
    station[i] = GasPump(thing, thing, thing);
}

1 个答案:

答案 0 :(得分:0)

我不确定第二个代码片段中的语法,但是您可以使用std::vector如下存储指针。我还建议阅读有关智能指针的信息,其中unique_pointer与您的情况有关。 (确保为GasPump实现析构函数或事后处理删除...)

std::vector<GasPump*> station;
for (int i = 0; i < 3; i++) {
    intputFile >> thing >> thing >> thing >> thing;
    station.push_back(new GasPump(thing, thing, thing));
}

我也不确定为什么需要指针。如果不需要它们,请改用std::vector<GasPump>