Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/137.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 没有呼叫错误的匹配函数&;候选错误_C++_Class - Fatal编程技术网

C++ 没有呼叫错误的匹配函数&;候选错误

C++ 没有呼叫错误的匹配函数&;候选错误,c++,class,C++,Class,我有这门课: 模板 class MtmMap { private: ValueType defaultValue; KeyType defaultKey; Node* head; int amount; public: MtmMap(KeyType defaultKey, ValueType defaultValue) : defaultKey(defaultKey), defaultValue(defaultValue),

我有这门课:

模板

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 ;
MtmMap-m;
我有很多错误:

- candidates are:

- no matching function for call to 'MtmMap<int,int>::MtmMap()'
-候选人包括:
-调用“MtmMap::MtmMap()”时没有匹配的函数
*我有编辑问题。对不起

有人能帮我吗

MtmMap(KeyType defaultKey, ValueType defaultValue)

MtmMap
有一个包含两个参数的构造函数。您没有传递任何参数。

您没有不带参数的构造函数。您只有具有2个参数的构造函数。可以不带参数地声明构造函数,也可以使用带2个参数的构造函数构造对象

MtmMap m((KeyType()), (ValueType()));
您为它提供模板参数,这与构造函数参数不同。在您的案例中,模板参数是类型,在构造函数中,您应该发送类型为
KeyType
的一个值和类型为
ValueType
的第二个值(在您的案例中为int,int)。比如像这样

MtmMap<int, int> mmap(1, 2); // default key == 1, default value == 2
MtmMap-mmap(1,2);//默认键==1,默认值==2

但我给它两个参数(int,int)MtmMap m;但是我不需要它,因为我发送了两个参数(int,int),好吧,如果我想创建一个只接受类型的构造函数,我该怎么做?@user3036061你不能这样做。函数无法接收类型作为参数。但我想创建一个带有(int,int)的MtmMap,但我想使用我在类中创建的“插入”函数来放置实际int值,该类接受(KeyType k,ValueType v)@user3036061不带参数的write构造函数,并且所有操作都应该正常。