我正在尝试为二维指针数组定义类型,以便减少代码中的混乱情况。我有三重指针,所以我认为它看起来很糟糕。
我设法使用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
的引用。多才多艺,并且您不太可能会忘记有时不应该使用该引用。