没有匹配的呼叫功能

时间:2014-10-13 20:36:26

标签: c++ class pointers member

我有一个包含

.h文件
template <typename DataType>
class BST
{
private:
    struct BinaryNode
    {
         //variables
    }
public:
    BinaryNode *root;

    int contains(const DataType &x, BinaryNode *&t) const;
}

我试图通过以下方式致电contains

void SequenceMap::merge(BST<SequenceMap> theMap)
{
    theMap.contains(this, theMap.root);
}

contains的实施是

template <typename DataType>int BST<DataType>::contains(const DataType &x, BST<DataType>::BinaryNode *&t) const
{
 //some stuff
}

我遇到的问题是:no matching function call to BST<SequenceMap>::contains(SequenceMap* const, BST<SequenceMap>::BinaryNode*&) theMap.contains(this,theMap.root)

由于thisDatatype SequenceMap的变量且theMap.rootBinaryNode,我不确定这是错误的部分。我尝试将其更改为*theMap.root,但这没有用。

1 个答案:

答案 0 :(得分:3)

该函数通过引用而不是指针来调用x。你可能想要:

theMap.contains(*this, theMap.root);