我想做的只是简单;
它看起来非常简单,但我无法在互联网上找到任何示例。 不管我做了什么;未定义引用`Test :: _ pin'错误! 我不编译。
我的课程标题Test.h:
#ifndef Test_h
#define Test_h
#include "Arduino.h"
class Test
{
public:
Test(byte pin);
static byte getPin();
static byte _pin;
private:
};
#endif
我的班级代码Test.cpp:
#include "Test.h"
Test::Test (byte pin) {
_pin = pin;
}
byte Test::getPin(){
return _pin;
}
StaticClassTest.ino:
#include "Test.h"
void setup()
{
Test(5);
Serial.begin(9600);
Serial.println(Test::getPin(), DEC);
}
void loop() { }
我已经尝试使用以下方式访问_pin:
byte Test::getPin(){
return Test::_pin; // did NOT work, reference error
}
理想情况下,_pin应该是私有的:并且可以通过我的getPin()访问; 但由于无法设置/获取此变量,因此我公开表示有更多机会。
这个简单的背景有什么问题?
如何在此课程中设置/获取此变量?
答案 0 :(得分:2)
在Test.cpp
添加:
byte Test::_pin;
它会起作用。
它只是在类中声明,你必须为这个变量创建一个空间(通过添加定义)。
中的更多信息