没有匹配的呼叫错误功能&候选人错误

时间:2014-01-13 09:31:31

标签: c++ class

我有这堂课:

模板

class MtmMap {

private:

    ValueType defaultValue;

    KeyType defaultKey;

    Node* head;

    int amount;

public:

    MtmMap(KeyType defaultKey, ValueType defaultValue) :

        defaultKey(defaultKey), defaultValue(defaultValue), head(NULL), amount(0) {

    } ;
....... more code.. };

当我想创建一个新类时:

MtmMap<int, int> m ;

我有很多错误:

- candidates are:

- no matching function for call to 'MtmMap<int,int>::MtmMap()'

*我有编辑问题。 。 。遗憾

任何人都可以帮助我吗?

2 个答案:

答案 0 :(得分:1)

您没有没有参数的构造函数。您只有2个参数的构造函数。你可以声明没有参数的构造函数,或者你应该用带有2个参数的构造函数构造你的对象。

MtmMap m((KeyType()), (ValueType()));

你给它的模板参数,即构造函数参数不一样。您的案例中的模板参数是类型,在构造函数中,您应该发送类型KeyType和类型ValueType的第二个值(在您的情况下为int,int)。例如像这样

MtmMap<int, int> mmap(1, 2); // default key == 1, default value == 2

答案 1 :(得分:0)

MtmMap(KeyType defaultKey, ValueType defaultValue)

MtmMap有一个构造函数,它有两个参数。你没有通过。