如何从const成员函数返回数组引用?
class State{
Chips (&arr() const)[6][7] { return arr_; }
Chips val() const { return val_; }
}
'const Chips [6] [7]'
类型表达式'Chips(&)[6] [7]'类型的引用初始化无效谢谢。
答案 0 :(得分:7)
你的语法是正确的,但是如果arr_
是该类的直接成员(并且它可能是),那么你根本无法向该成员返回非成本引用。在上述arr
方法中,成员arr_
被视为具有const Chips[6][7]
类型。您不能使用此类型初始化Chops (&)[6][7]
类型的引用,因为它会破坏const正确性。为了进行上述编译,您还需要在返回的引用上使用const
...
const Chips (&arr() const)[6][7] { return arr_; }
...
但无论如何,使用typedef
你会好得多...
typedef Chips Chips67[6][7];
const Chips67 &arr() const { return arr_; }
...
答案 1 :(得分:-2)
您需要将该函数指定为返回Chips指针。所以,
Chips* arr() const;
您在寻找什么。