我有这堂课:
模板
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()'
*我有编辑问题。 。 。遗憾
任何人都可以帮助我吗?
答案 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
有一个构造函数,它有两个参数。你没有通过。