C ++: «ошибка: ожидаемое имя класса перед маркером '{'» при наследовании класса шаблона

Я поискал решение своей проблемы и нашел много информации о циклических ссылках и проблемах с пространством имен (в моем случае они не применимы), но ничего похожего на мою проблему.

У меня есть шаблонный класс, определенный и реализованный в maths / matrix.h:

template<class T>
class Matrix
{
public:
    // constructors, destructors and what not...
};

У меня есть еще один шаблонный класс, определенный и реализованный в maths / 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 находятся в подпапке maths, потому что я могу без проблем использовать matrix.h в других частях моего приложения. Я думаю, это как-то связано с тем, что Matrix является шаблонным классом, потому что когда я делаю Vector подклассом не шаблонного класса (например, SomeClass.h), все компилируется нормально.

Большое спасибо всем, кто может помочь :)

9
задан The Sockmonster 17 April 2011 в 14:03
поделиться