出于某种原因,我一直在努力 “../Svc/../Drv/Timer.h:18:12:错误:我编译时'svc'尚未声明”。无法弄清楚为什么......
Timer.h文件
#include "../Svc/TimerManager.h"
namespace drv {
class Timer {
public:
void Init(svc::TimerManager *aTimerMan);
private:
svc::TimerManager *timerMan;
};
} /* namespace drv */
TimerManager.h
#include <stdint.h>
#include "../Drv/Timer.h"
namespace svc {
/*
*
*/
class TimerManager {
public:
uint8_t msec10;
uint8_t sec;
uint8_t min;
uint8_t hour;
void Init();
void IncrementTime();
private:
drv::Timer timer;
};
} /* namespace svc */
答案 0 :(得分:2)
两个标题都试图互相包含,这是不可能的。
幸运的是,Timer.h
并未对TimerManager
做任何要求完整定义的事情;所以不要包含该标题,只需声明该类:
namespace svc {class TimerManager;}