我想有一個類中獲得多維數據,我發現:過載()算多維數據訪問
爲了提供多維數組訪問語義,例如要實現一個三維數組訪問一個[i] [j] [k] = x ;,運算符[]必須返回一個2D平面的引用,該平面必須有它自己的運算符[],它返回一個1D行的引用,它必須具有返回元素引用的operator []。爲避免這種複雜性,一些庫選擇重載operator(),以便3D訪問表達式具有像Fortran一樣的語法a(i,j,k)= x;
上http://en.cppreference.com/w/cpp/language/operators
,我想使用建議的語法,但我有實現麻煩。我該如何編寫重載賦值運算符來這樣工作?
'Eigen'庫可能就是這樣做的。另外:你有什麼困難? –
是的,我用Eigen,但有趣的事情,這次gcc 4.6是我的極限...... :(但是好主意,我會嘗試搜索他們是如何做到的 – corwin
你不需要重載賦值操作符。 – HolyBlackCat