본문 바로가기
아두이노

아두이노와 달력 - #5

by 오징어땅콩2 2020. 3. 5.
반응형

자 앞에서 없다고 했다.

그러면 하나씩 만들어 주자.

 

날짜 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(20203,1);
  Calendar b(20204,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

댓글