【问题标题】:problem when creating a class with a template使用模板创建类时出现问题
【发布时间】:2021-07-06 13:33:29
【问题描述】:

我做错了什么?

#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++11 visual-c++


【解决方案1】:

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

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

只需删除该部分:

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

【讨论】:

  • 现在我有 LINK 错误。当我扩展这门课时
  • @Amos 可能是因为this problem。或者可能是因为非抽象虚函数必须有一个定义(实现)。
  • 我实现了这个虚函数,但是因为模板的关系没有构建,可能
  • @Amos 那么请按照我评论中的链接查看最可能的问题以及如何解决它。
  • 我设法使用模板构建,使用虚拟函数的虚拟实现
猜你喜欢
  • 2020-02-01
  • 1970-01-01
  • 2018-07-10
  • 2021-03-23
  • 1970-01-01
  • 2017-04-29
  • 1970-01-01
  • 2020-11-13
  • 2016-05-08
相关资源
最近更新 更多