C ++类模板的问题

时间:2011-06-03 14:24:04

标签: c++ templates

为什么这个模板不会编译?

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

3 个答案:

答案 0 :(得分:6)

您需要指定模板参数:

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

答案 1 :(得分:4)

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

}

答案 2 :(得分:4)

试试这个:

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

注意类名后面的模板参数。