首页 > 解决方案 > 使用模板创建类时出现问题

问题描述

我究竟做错了什么?

#include "String.hpp"

namespace java {
      namespace lang {


template<typename  T>
class Comparable<T>  {

protected:
     virtual int8_t compareTo(T& o);
};

}


}



#endif // COMPARABLE_H

我之前没有在任何地方声明过这个类

Comparable.h:11:7: error: explicit specialization of undeclared template class 'Comparable'

标签: c++c++11visual-c++

解决方案


定义模板类时,类名中不需要模板参数:

template<typename  T>
class Comparable<T>  { /* ... */ };
//              ^^^
//     Invalid here

只需删除该部分:

template<typename  T>
class Comparable  { /* ... */ };

推荐阅读