Я использую code: block в Ubuntu 18.04 с установленным gcc и компилирую программу с -std = c ++ 11 как вариант.
Почему этот код выдает ошибку «GameTimer не называет тип» внутри объявления класса и то же самое
c++
#include "../headers/GameTimer.h"
class Game:
{
--some declarations--
private:
GameTimer * m_Timer;
-- more attributs--
}; // END Game
Вот определение GameTimer.h:
#ifndef TIMER_H_INCLUDED
#define TIMER_H_INCLUDED
class GameTimer
{
public:
GameTimer ();
~GameTimer ();
void Start ( void );
double getElapsedSeconds ( void );
double getIntervalSeconds ( void );
double Stop ( void );
private
uint m_StartTime; // Time when timer created / reset
uint m_LastTime; // Time elased since start / last interval
double m_ElapsedTime; // Time elapsed total since start
}; // end GameTimer
#endif // TIMER_H_INCLUDED
Вместо "../headers/GameTimer.h"
или полный путь использования Вашего заголовка или предоставляет флаг-I Вашему компилятору. Shorthands как., ~ и т.д. действительно синтаксисы удара. Это не что-то, что понял бы c-препроцессор (компонент набора инструментальных средств, который ответственен за нахождение заголовков и парсинг информации от них). Помните, что файл C++ не читается оболочкой, как будто это был некоторый сценарий оболочки, но вместо этого чтение c-препроцессором.