2017-08-14 32 views
1

我有具有成員的類定義爲:返回在C與明確的返回類型的多維數組++

float U[2][2]; 

現在我有一個訪問器功能和我想的基準返回到該陣列。所以,我有這樣的:

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

有沒有辦法使用這種Ø語法,而不是指針語法(我認爲它使事情更清楚了)歸還。

+3

使用'的std :: array'代替C數組,它使一切更容易。 –

+2

首選'std :: array',但另一種選擇是使用typedef。 – Kevin

回答

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; } 

(後者通過的建議丹尼爾H.在評論中)。

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

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

哇......這很尷尬...... – Luca

+1

是的,我會做類似'使用matrix22 = float [2] [2]; matrx22 const&mat()const {return U; }'。 –