从const成员函数返回引用数组

dav*_*vid 3 c++ reference multidimensional-array

如何从const成员函数返回数组引用?

class State{
    Chips (&arr() const)[6][7] { return arr_; }
    Chips val() const { return val_; }
}
Run Code Online (Sandbox Code Playgroud)

'const Chips [6] [7]'类型表达式'Chips(&)[6] [7]'类型引用的初始化无效

谢谢.

AnT*_*AnT 7

你有正确的语法,但如果arr_是类的直接成员(可能是),那么你根本无法返回对该成员的非成本引用.在上述arr方法中,成员arr_被视为具有const Chips[6][7]类型.您不能使用此类型初始化类型的引用,Chops (&)[6][7]因为它会破坏const正确性.为了完成上面的编译,你还需要一个const返回的引用

...
const Chips (&arr() const)[6][7] { return arr_; }
...
Run Code Online (Sandbox Code Playgroud)

但无论如何,使用typedef你会好得多

...
typedef Chips Chips67[6][7];
const Chips67 &arr() const { return arr_; }
...
Run Code Online (Sandbox Code Playgroud)