我得想重載()運算符用於數組訪問時,另一個問題:C++()操作問題
const OctTreeNode*& operator()(const int i, const int j, const int k) const{
return m_cells[k*m_resSqr+j*m_res+i];
}
OctTreeNode*& operator()(const int i, const int j, const int k){
return m_cells[k*m_resSqr+j*m_res+i];
}
vector<OctTreeNode*> m_cells;
我得到一個
C2440 'return': cannot convert from 'OctTreeNode *const' to 'const OctTreeNode *&'
這是怎麼回事?我正在像另一個班級那樣宣佈它。唯一的區別是,其他類是通用的,還有我使用牛逼&,而不是OctreeNode * &
是否有返回對指針的引用而不是引用元素的原因? – pmr 2009-12-20 18:01:25
...或指向成員的指針?返回const引用的想法是它可能比返回完整副本要便宜得多,但如果類型是整數或指針,它沒有多大意義。 (假設你不能將引用返回到真實對象,這將是一個更好的方法) – 2009-12-21 07:59:06