0
내가 원하는 것은 간단합니다. Arduino : 클래스의 정적 메서드에서 정적 변수에 액세스
- .
매우 쉽게 보이지만 유선 인터넷에 어떤 예도 찾을 수 없습니다. 내가주는 것은 무엇이든지; `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에 :
StaticClassTest.ino이#include "Test.h"
Test::Test (byte pin) {
_pin = pin;
}
byte Test::getPin(){
return _pin;
}
:
#include "Test.h"
void setup()
{
Test(5);
Serial.begin(9600);
Serial.println(Test::getPin(), DEC);
}
void loop() { }
이미 액세스 시도했습니다 _ 핀 :
byte Test::getPin(){
return Test::_pin; // did NOT work, reference error
}
이상적으로 _pin은 private이어야하며 getPin(); 하지만이 변수를 설정하거나 가져 오는 것은 불가능하기 때문에 더 많은 기회를 갖기 위해 공개했습니다.
이 간단한 컨텍스트에서 잘못된 점은 무엇입니까?
이 클래스에서이 변수를 어떻게 설정하거나 가져올 수 있습니까? Test.cpp
추가에
는 당신이 일을 Test.cpp에이 두 번째 정의와 @KIIV 감사합니다! 나는 아직도 놀랍고 혼란 스럽다. 왜 두 번째 메모리 할당이 필요한가? 이 예외로 인해 약 6 시간을 보냈습니다. -/다시, 감사합니다! 건배, – Trevor