Arduino C ++文件 - 在构造函数中设置私有成员变量时,类实例化失败

时间:2014-11-23 20:02:03

标签: c++ arduino

我正在使用Arduino IDE 1.0.5-r2并尝试创建一个包含两个成员变量的类,_pinA和_pinB。当我从Arduino草图中调用构造函数时,出现此错误:

RotaryEncoderReader.cpp:6: error: request for member '_pinB' in 'this', which is of non-class type 'RotaryEncoderReader* const'

可以从使用GCC编译的常规C ++文件中调用构造函数,并且没有错误。我错过了一些关于如何使用Arduino的类构造函数的东西吗?

以下是类标题:

#ifndef RotaryEncoderReader_h
#define RotaryEncoderReader_h

#include "Arduino.h"
class RotaryEncoderReader {
    private:
        int _pinA;
        int _pinB;
        volatile long encoderPos;

    public:
        RotaryEncoderReader( int newPinA, int newPinB );
        void doEncoderA();
        void doEncoderB();
        long getPosition();
};
#endif

以下是实施:

#include "RotaryEncoderReader.h"

RotaryEncoderReader::RotaryEncoderReader( int newPinA, int newPinB )
    : _pinA(newPinA),
      _pinB(newPinB),
      encoderPos(0)
{
}

void RotaryEncoderReader::doEncoderA()
{
    //Irrelevant
}

void RotaryEncoderReader::doEncoderB()
{
    //Irrelevant
}


long RotaryEncoderReader::getPosition()
{
    return _pinA + _pinB;
}

这是Arduino草图:

#include <RotaryEncoderReader.h>

int pinA = 2;
int pinB = 3;

RotaryEncoderReader reader(pinA, pinB);

void setup()
{
}

void loop()
{
}

0 个答案:

没有答案