我正在尝试为二维指针数组定义类型,以便减少代码中的混乱情况。我有三重指针,所以我认为它看起来很糟糕。
我设法使用typedef重构了代码,但这更像是反复试验。我想知道这实际上意味着什么:

typedef SomeClass* (&grid8x8)[8][8];


以及为什么该函数返回确定值:

grid8x8 SomeOtherClass::getGrid()
{
    return grid;
}


在这种情况下,typedef的语法使我感到困惑。

最佳答案

typedef表示:grid8x8是对指向SomeClass的8x8指针数组的引用。

我可以想象,SomeOtherClass::getGrid函数将返回引用,然后返回成员变量SomeOtherClass::grid

我会这样做:

typedef SomeClass* (grid8x8)[8][8];


const grid8x8& SomeOtherClass::getGrid()
{
    return grid;
}


这样,您可以具有grid8x8或对grid8x8的引用。多才多艺,并且您不太可能会忘记有时不应该使用该引用。

09-08 11:15