无法在我的类中声明对象指针

时间:2016-07-18 14:45:18

标签: c++ pointers arduino

#ifndef IRSensor_h
#define IRSensor_h

#include "Arduino.h"
#include "Turret.h"

class IRSensor
{
  private:
    int m_Pin;
    int state;
    Turret* m_Turret;
    bool m_LastState;
  public:
    IRSensor(int pin, Turret* turret);
    void Monitor();
    int getState();
};
#endif

上面给出了以下错误“Turret没有命名类型”,这是由于我私下宣布一个Turret *指针。为什么我不能声明这个对象指针?

这是我的炮塔代码

#ifndef Turret_h
#define Turret_h

#include "Stepper.h"
#include "IRSensor.h"

class Turret:public Stepper
{
  private:
    int m_Enable;
    int m_Direction;
    int m_Step;
    IRSensor* IRPointer;
  public:
    Turret(int en, int dir, int clk, int sensorPin);
    void IRChanged();
    void Monitor();
};
#endif

这是炮塔的cpp文件

#ifndef Turret_cpp
#define Turret_cpp

#include "Stepper.h"
#include "Turret.h"
#include "IRSensor.h"
#include "Arduino.h"

Turret::Turret(int en, int dir, int clk, int sensorPin):Stepper(en,dir,clk)
{
IRPointer = new IRSensor(sensorPin,this);
}
void Turret::IRChanged()
{
  Stop();
}
void Turret::Monitor()
{
  if(IRPointer->getState()==0)
  {
    //Serial.println("Turret Stopping");
    Disable();
    Stop();
  }
  else
  {
    //Serial.println("Turret Starting");
    Enable();
    Start();
  }
}
#endif

0 个答案:

没有答案