2011-06-03 161 views
2

爲什麼這個模板不能編譯?C++類模板的問題

template <class K, class V = Referenced> 
class Cache 
{ 
public: 
    Cache(); 
    ... 
}; 

template <class K, class V> 
Cache::Cache() <==== location of compiler error (see below) 
{ 
    ... 
} 

錯誤error: 'template<class K, class V> class Cache' used without template parameters

回答

6

你需要指定模板參數:

template <class K, class V> 
Cache<K, V>::Cache() 
{ 
    ... 
} 
4
template <class K, class V> 
Cache<K,V>::Cache() // Specify the template parameters 
{ 
    //... 

} 
4

試試這個:

template <class K, class V> 
Cache<K, V>::Cache() 
{ 
    ... 
} 

注意類名後面的模板參數。