通过指针访问结构数组

时间:2015-02-26 17:35:33

标签: c++

我有一个具有其位置结构的类:

class thing
{
    void setCoOrds(int, int, int);

    string name;
    struct location
    {
        int x;
        int y;
        int z;
    } coOrd;
};

然后在一个函数中我创建了一个类型为thing的数组。

int main()
{
    thing * p_myThings = new thing[5];
    // call array element here to use setCoOrds()
    delete p_myThings;

    return 0; 
}

从main函数中我将如何访问,比如,thing元素[3]以便我可以使用它的.setCoOrds()函数?

4 个答案:

答案 0 :(得分:1)

应该是:

p_myThings[3].setCoOrds

setCoOrds

默认是私有的,不允许你调用该函数。

答案 1 :(得分:0)

int main()
{
    thing * p_myThings = new thing[5];

    p_myThings[3].setCoOrds(42,21,0);

    delete[] p_myThings; // use delete[] for arrays btw

    return 0; 
}

答案 2 :(得分:0)

我想那个成员函数

void setCoOrds(int, int, int);

具有公共访问控制权。在这种情况下,您可以使用以下结构

p_myThings[3].setCoOrds( x, y, z );

( *( p_myThings + 3 ) ).setCoOrds( x, y, z );

( p_myThings + 3 )->setCoOrds( x, y, z );

答案 3 :(得分:0)

您应该使用:

p_myThings[3].setCoOrds(x, y, z);

要删除指针数组,您应该使用delete [] not delete