我想使用成员函数来调用当前对象本身,但是我得到了一个错误的抱怨:
error: reference to type 'const block' could not bind to an rvalue of type 'block *'
if (otherBlks[mm].theNeighbourPolyline(this) == 1)
^~~~
~/blockI.hpp:358:59: note: passing argument to parameter 'blockX' here
inline const int block::theNeighbourPolyline(const block& blockX) const
当我尝试添加新成员函数void block::bdsmooth(const vector<block>& otherBlks)
时,会发生错误。在此成员函数中,theNeighbourPolyline(otherBlks[mm])
工作正常,但似乎不允许otherBlks[mm].theNeighbourPolyline(this)
。
我该怎么做才能解决这个问题?
答案 0 :(得分:4)
this
是指针值,但您的函数正在查找引用参数。尝试:
if (otherBlks[mm].theNeighbourPolyline(*this) == 1)