在c ++中返回具有显式返回类型的多维数组

时间:2017-08-14 15:04:19

标签: c++

我有一个类,其成员定义为:

float U[2][2];

现在我有一个访问器函数,我想返回对这个数组的引用。所以,我有类似的东西:

const float & [2][2] mat() const
{
    return U;
}

有没有办法使用这种语法而不是指针语法来返回它(我认为它使事情更明确)。

1 个答案:

答案 0 :(得分:2)

这很尴尬,但是:

const float (&mat() const)[2][2]
{
    return U;
}

使用typedef或decltype可能会更好,例如:

const decltype(U) &mat() const { return U; }

或:

using mat22 = float[2][2];
const mat22 &mat() const { return U; }

(后者是Daniel H.在评论中提出的)。

或者,在C ++ 14中,甚至只是:

const auto &mat() const { return U; }