这里不允许`* this`,请求解决方案

时间:2014-03-15 07:22:19

标签: c++

我想使用成员函数来调用当前对象本身,但是我得到了一个错误的抱怨:

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)

我该怎么做才能解决这个问题?

1 个答案:

答案 0 :(得分:4)

this是指针值,但您的函数正在查找引用参数。尝试:

if (otherBlks[mm].theNeighbourPolyline(*this) == 1)