연산자 중복(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();
}
}
}
참고 예제 결과]
대한민국의 아름다운 영토, 독도의 겨울
'프로그램 > C# 1000제' 카테고리의 다른 글
C# 예제6] C# 프로그래밍 입문 CHAPTER 1. p31 이벤트 (0) | 2021.07.17 |
---|---|
C# 예제5] C# 프로그래밍 입문 CHAPTER 1. p28 델리게이트 (0) | 2021.07.16 |
C# 예제3] C# 프로그래밍 입문 CHAPTER 1. p25 프로퍼티 (0) | 2021.07.14 |
C# 예제2] C# 프로그래밍 입문 CHAPTER 1. p23 스트링 (0) | 2021.07.13 |
C# 표제1] C# 프로그램 입문(Introduction to C# Programming) (0) | 2021.07.12 |
댓글