본문 바로가기
프로그램/C# 1000제

C# 예제4] C# 프로그래밍 입문 CHAPTER 1. p27 연산자 중복

by 건티 2021. 7. 15.
728x90

연산자 중복(operator overloading)이란 시스템에서 제공한 연산자를 새로운 의미를 갖도록 재정의 하는 것이다. 특정한 클래스를 위한 연산자를 재정의하면 마치 시스템에서 제공한 연산자처럼 사용할 수 있다. 이와 같이 클래스에 적합한 연산자를 정의함으로써 자료 추상화를 이룰 수 있으며 프로그램의 유지보수가 매우 쉬워진다. 다만, 시스템에서 제공한 모든 연산자를 재정의 할 수 있는 것은 아니다. 연산자 중복은 의미만을 재정의할 수 있을 뿐 연산 순위나 결합 법칙 등 문법적인 규칙은 변경할 수 없다.

 

참고 예제]

using System;
using System.Collections.Generic;
using System.Text;

namespace Chapter1
{
    class Even
    {
        int evenNumber;
        public Even(int n) //생성자
        {
            evenNumber = (n % 2 == 0) ? n : n + 1;
        }
        public static Even operator++(Even e)
        {//++연산자
            e.evenNumber += 2; //다음 짝수
            return e;
        }
        public static Even operator--(Even e)
        {//--연산자
            e.evenNumber -= 2; //이전 짝수
            return e;
        }
        public void PrintEven()
        {
            Console.WriteLine("Even Number = " + evenNumber);
        }
    }
    class OperatorOverloadingApp
    {
        public static void Main()
        {
            Even e = new Even(4);
            e.PrintEven();
            ++e;
            e.PrintEven();
            --e;
            e.PrintEven();
        }
    }
}

 

참고 예제 결과]

 

 

 

대한민국의 아름다운 영토, 독도의 겨울

 

반응형

댓글