在不同命名空间中向类添加指针时出错?

时间:2015-03-08 22:25:30

标签: c++ pointers namespaces

出于某种原因,我一直在努力 “../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 */

1 个答案:

答案 0 :(得分:2)

两个标题都试图互相包含,这是不可能的。

幸运的是,Timer.h并未对TimerManager做任何要求完整定义的事情;所以不要包含该标题,只需声明该类:

namespace svc {class TimerManager;}