2014-01-13 65 views
0

沒有匹配的功能我有這個類:呼叫錯誤及考生錯誤

模板

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()' 

*我編輯problims。 。 。對不起

任何人都可以幫助我嗎?

回答

1

您沒有沒有參數的構造函數。你只有2個參數的構造函數。你可以聲明不帶參數的構造函數,或者你應該用帶有2個參數的構造函數構造你的對象。

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

您給它的模板參數,即不同的構造函數參數。你的案例中的模板參數是類型,在構造函數中,你應該發送KeyType類型的值和ValueType(int,int)類型中的第二個值。例如這樣

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

但我不需要它,因爲我發送了兩個參數(int,int) – user3036061

+0

好吧,如果我想創建一個僅使用類型的構造函數,我該怎麼做呢? – user3036061

+0

@ user3036061你不能這樣做。函數不能接收類型作爲參數。 – ForEveR

0
MtmMap(KeyType defaultKey, ValueType defaultValue) 

MtmMap有一個構造函數,它需要兩個參數。你沒有通過。

+0

但我給它的兩個參數(INT,INT) MtmMap米; – user3036061