관리 메뉴

ComputerVision Jack

[C++프로그래밍 Chapter10] 본문

Programming Language/C++ Programming

[C++프로그래밍 Chapter10]

JackYoon 2020. 1. 31. 13:46
반응형

[연산자 오버로딩 이해]

Sample operator+(const Sample & ref){  }

 

operator 키워드와 연산자를 묶어서 함수의 이름을 정의하면 

함수의 이름을 통하거나 연산자를 통하여 함수를 호출 할 수 있게 한다.

 

연산을 할때, 피연산자가 객체일 경우, 클래스 안에 정의된 연산자 재정의를 통하여 함수를 불러온다.

이러한 연산자 재정의 함수는 const로 선언하지 않는다.

 

연산자 오버로딩

  • 멤버 함수에 의한 연산자 오버로딩 - 객체.operator+(객체)
  • 전역 함수에 의한 연산자 오버로딩 - operator+(객체, 객체)

연산자 오버로딩 주의사항

  • 의도를 벗어난 연산자 오버로딩은 좋지 않다.
  • 연산자의 우선순위와 결합성은 바뀌지 않는다
  • 매개변수의 디폴트 값 설정 불가하다
  • 순수 기능은 보존한다.

[단항 연산자 오버로딩]

단항 연산자에 증가, 감소 연산자가 있다.

이들 또한 연산자오버로딩이 가능하다.

 

단항이기 때문에 객체 자신에 대한 연산을 수행한다. 따라서 반환형으로

*this를 사용하여 반환할 수 있다.

[교환 법칙 문제 해결]

교환 법칙은 전역함수에 의해 만들어 질 수 있다.

 

 

cout, cin, endl에 사용되는 << >>연산자 또한 연산자 재정의를 통하여 구현되어 있다.

cout은 outstream 클래스 객체이다.

cin는 istream클래스 객체이다.

 

반응형

'Programming Language > C++ Programming' 카테고리의 다른 글

[C++프로그래밍 Chapter12]  (0) 2020.02.03
[C++프로그래밍 Chapter11]  (0) 2020.02.01
[C++프로그래밍 Chapter9]  (0) 2020.01.30
[C++프로그래밍 Chapter8]  (0) 2020.01.29
[C++프로그래밍 Chapter7]  (1) 2020.01.28
Comments