你好,我正在浏览一些遗留代码,发现了一个奇怪的方法定义/声明。我有一个猜测它的作用是什么,但我还不能百分之百确定。
声明:
const SomeEnumeratedId (&SomeMethod() const)[SOME_CONSTANT_VALUE];
定义
const SomeEnumeratedId (&SomeClass::SomeMethod() const)[SOME_CONSTANT_VALUE]
{
return someMemberArray;
}
我的最佳猜测是它正在传递对someMemberArray的引用,并且保证它的大小为SOME_CONSTANT_VALUE,但我从未在方法声明后看到过[]符号,而且有太多的括号。
非常感谢您的帮助。
int x[k];
现在是对数组的引用:int (&y)[k];
现在为了声明一个返回数组引用的函数,我们将y
替换为类似函数调用的东西:int (&(z())[k];
z 是一个返回数组引用的函数。即使 typedef 数组有时会误导人,但明智的人们在这一点上使用 typedef。 - CB Baileytypedef int myArrayType[3];
,方括号[3]
在新类型名称之后,而不是原始类型之后。 - Lightness Races in Orbit