반응형
자 앞에서 없다고 했다.
그러면 하나씩 만들어 주자.
날짜 a;
날짜 b;
if (a==b) digitalWrite(LED_BUILTIN, HIGH);
else digitalWrite(LED_BUILTIN, LOW);
|
위와 같이 코딩 했을떄 과연 될까 ?
뮬론 안된다. == 과 같은 동등 연산자는 숫자에서만 가능 하다.
날짜는 숫자가 아니다. 그래서 안된다.
안되면 되게 하는 방법을 무엇일까 ?
그렇다 연산자에서 의미를 부여 하면 된다.
이것이 C++의 대단한 기능중의 하나인 연산자 오버로딩이다.
연산자에 의미를 부여 하는것이다.
그리고 날짜 클래스 타입도 만들어야 한다.
이전에서 이야기 했지만, 어렵다면 loop 메인 함수만 보기 바란다.
#include <SoftwareSerial.h>
class Calendar
{
private :
int year;
int month;
int day;
public:
Calendar();
Calendar(int y,int m, int d)
{
year = y;
month = m;
day = d;
}
friend bool operator == (const Calendar &l, const Calendar &r)
{
if(l.year==r.year) if(l.month==r.month) if(l.day==r.day) return true;
return false;
};
};
void setup()
{
Serial.begin (115200); //시리얼 프린트를 시작합니다.
pinMode(LED_BUILTIN, OUTPUT);
}
void loop()
{
Calendar a(2020, 3,1);
Calendar b(2020, 4,1);
if( a==b) digitalWrite(LED_BUILTIN, HIGH);
else digitalWrite(LED_BUILTIN, LOW);
delay(1000);
http://colorscripter.com/info#e" target="_blank" style="color:#e5e5e5text-decoration:none">Colored by Color Scripter
|
'아두이노' 카테고리의 다른 글
아두이노와 달력 - #7 (0) | 2020.03.05 |
---|---|
아두이노와 달력 - #6 (0) | 2020.03.05 |
아두이노와 달력 - #4 (0) | 2020.03.05 |
아두이노와 달력 - #3 (0) | 2020.03.05 |
아두이노와 달력 - #2 (0) | 2020.03.01 |
댓글