Я поискал решение своей проблемы и нашел много информации о циклических ссылках и проблемах с пространством имен (в моем случае они не применимы), но ничего похожего на мою проблему.
У меня есть шаблонный класс, определенный и реализованный в 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), все компилируется нормально.
Большое спасибо всем, кто может помочь :)