,我有以下用C++編寫代碼,涉及模板:模板和映射在C++
#include <assert.h>
#include <map>
#include <limits>
template<class K, class V> class interval_mapping {
private:
std::map<K,V> aMap;
public:
interval_mapping(V const& val) {
aMap.insert(
aMap.begin(),
std::make_pair(std::numeric_limits<K>::min(),val)
);
}
void assign(K const& keyBegin, K const& keyEnd, const V& val) {}
V const& operator[](K const& key) const {
return (--m_map.upper_bound(key))->second;
}
};
int main()
{
interval_mapping<int, char> myMap;
}
我得到的錯誤:
no default constructor exists for class "interval_mapping"
究竟是什麼錯誤說:'interval_mapping myMap;'這一行聲明一個變量'myMap'並調用類的默認構造函數,並且構造函數不存在。 –
NetVipeC
2014-09-05 14:55:04
如果你不知道*默認構造函數*是什麼 - 它是一個沒有參數的構造函數。知道這是基礎性的,並且很容易幫助你看到錯誤。所以你可能想咬定子,並在定義你自己的模板類之前檢查一些基礎知識! : - /在任何情況下,歡迎來到StackOverflow ...並注意在問題中放置簽名或說「提前致謝」被認爲[只是佔用空間](http://meta.stackoverflow.com/q/260776/211160);少即是多! – HostileFork 2014-09-05 15:09:24
對所有人:非常感謝你;問題已經解決了。 – 2014-09-05 15:24:00