在C++中的类之间发送数组

Sending array between class in C++

本文关键字:数组 之间 C++      更新时间:2023-10-16

我遇到了一个问题。我想创建IOBjekt的新数组,我已经填充了数组,现在我想将数组发送到另一个类(Hra)。你能帮我指点迷津吗。我不知道如何foreach这个数组和从对象调用方法。

保存到阵列

IObjekt **store = new IObjekt*[3];
for (int i = 0; i < 3; i++)
{
    store[i] = new BMPObjekt(aHraciaPlocha, "ball.bmp");
    cout << store[i] << endl;
}
aHra = new Engine(aHraciaPlocha, *store);

分析阵列

Engine::Engine(ISystem * plocha, IObjekt *objekty)
    :aHraciaPlocha(plocha), aObjekty(objekty), aSkore(0)
{
    for (int i = 0; i < 3; i++) {
        IObjekt *objekt = &objekty[i]; // This doesnt work
        cout << objekt->dajX << endl; 
    }
}

谢谢。

我猜BMPObjektIObjekt之间的关系(您没有显示)使您无法轻松地从外部代码中删除间接级别。因此,您需要为调用的代码添加一个间接级别,从调用中删除一个*

aHra = new Engine(aHraciaPlocha, store);

Engine::Engine(ISystem * plocha, IObjekt **objekty)
    :aHraciaPlocha(plocha), aObjekty(objekty), aSkore(0)
{
    for (int i = 0; i < 3; i++) {
        IObjekt *objekt = objekty[i];
        cout << objekt->dajX << endl; 
    }
}