C++:继承模板类时"error: expected class-name before ‘{’ token"
C++: "error: expected class-name before ‘{’ token" when inheriting a template class
我四处寻找解决问题的方法,发现了很多关于循环引用和名称空间的问题(两者都不适用于我的情况),但都不像我遇到的问题。
我有一个模板类定义和实现在数学/矩阵。h:
template<class T>
class Matrix
{
public:
// constructors, destructors and what not...
};
我在math/vector.h中定义和实现了另一个模板类
#include <maths/matrix.h>
template<class T>
class Vector : public Matrix
{
public:
// constructors, destructors and what not...
};
在vector.h中,我得到了这个错误"期望的类名在'{'令牌之前",这真的很困扰我。这与matrix。h和vector。h在数学子文件夹中没有任何关系因为我可以在应用程序的其他部分使用matrix。h而不会出现任何问题。我认为这与矩阵是一个模板化的类,因为当我使向量的一个子类的非模板化类(例如somecclass .h),一切编译ok。
非常感谢任何人可以帮助:)
您需要从具体类继承,即从Matrix<T>
,而不仅仅是Matrix
:
template<class T>
class Vector : public Matrix<T>
{
…
};
你错过了两件事。
template<typename T>
class Vector : public Matrix <T> //<----- first : provide the type argument
{
}; //<-------- second : semi-colon (same from Matrix class also)
相关文章:
- C++错误:"class name"之前的预期类型说明符
- C++ 中的类之间的数据重新循环 - 错误:'<class name>'未在此范围内声明
- 错误:"class name"不命名类型
- 通过在每个元素上调用名称(),将类的向量转换为clangtype(class :: name())的向量
- "expected unqualified-id before 'void'" & "string in class does not name a type" 错误
- C++:除虚函数外," undefined reference to 'typeinfo for [class name]' "的原因是什么
- 我们如何在 c++ 中以朋友声明"friend elaborated-class-name ;"为例?
- VS2010 - 如何解决"XXX is a reserved class name"错误
- C++嵌套继承错误"expected class-name before ‘{’ token"
- 什么是Windows 'class name'开发的应用程序的?
- C++类继承"expected class-name"错误
- C++ 错误:标识符'class name'未定义
- 错误:在 c++ 中"too few arguements in template class name 'queue' "
- "class name"必须是以前定义的类或结构
- "error: expected class-name before '{' token"尝试继承
- 编译时"expected class-name before '{' token"
- inject -class-name表示不完整和完整类型
- 错误:'class name'重新声明为不同类型的符号?
- C++编译错误"expected constructor, destructor, or type conversion before ‘class’"
- C++:继承模板类时"error: expected class-name before ‘{’ token"