overriding 가능 연산자

  • 문서 : operator overloading - cppreference.com

  • 정리

    • 산술 연산자

      • operator+ : 덧셈 연산자
      • operator- : 뺄셈 연산자
      • operator* : 곱셈 연산자
      • operator/ : 나눗셈 연산자
      • operator% : 나머지 연산자
    • 비교 연산자

      • operator== : 동등 연산자
      • operator!= : 비동등 연산자
      • operator< : 작음 연산자
      • operator<= : 작거나 같음 연산자
      • operator> : 큼 연산자
      • operator>= : 크거나 같음 연산자
    • 할당 연산자

      • operator= : 대입 연산자
      • operator+= : 더하기 대입 연산자
      • operator-= : 빼기 대입 연산자
      • operator*= : 곱하기 대입 연산자
      • operator/= : 나누기 대입 연산자
    • 증감 연산자

      • operator++ : 전위 증가 연산자, 후위 증가 연산자
      • operator-- : 전위 감소 연산자, 후위 감소 연산자
    • 논리 연산자

      • operator&& : 논리 AND 연산자
      • operator|| : 논리 OR 연산자
      • operator! : 논리 NOT 연산자
    • 비트 연산자

      • operator& : 비트 AND 연산자
      • operator| : 비트 OR 연산자
      • operator^ : 비트 XOR 연산자
      • operator~ : 비트 NOT 연산자
      • operator<< : 비트 왼쪽 시프트 연산자
      • operator>> : 비트 오른쪽 시프트 연산자
    • 기타 연산자

      • operator[] : 배열 접근 연산자
      • operator() : 함수 호출 연산자
      • operator-> : 멤버 접근 연산자
      • operator* : 포인터 역참조 연산자
      • operator& : 주소 연산자

접근 관련 연산자 구분

  • :: (Scope Resolution Operator) : 범위 해제 연산자로, 네임스페이스의 특정 멤버, 클래스의 정적 변수, 함수 지정에 사용
  • . (Member Access Operator) : 객체의 멤버(변수나 함수)에 접근할 때 사용돼. 주로 객체가 인스턴스일 때 사용 (직접 접근)
  • -> (Member Access Operator through Pointer) : 포인터를 통해 객체의 멤버에 접근할 때 사용 (간접 접근)

Operator 오버라이딩 예시

Operator 사용해서 출력 용이 예시

  • 씹어먹는 C++ - <10 - 2. C++ STL - 셋(set), 맵(map), unordered_set, unordered_map>

      #include <iostream>
      #include <set>
      #include <string>
    
      template <typename T>
      void print_set(std::set<T>& s) {
        // 셋의 모든 원소들을 출력하기
        for (const auto& elem : s) {
          std::cout << elem << " " << std::endl;
        }
      }
    
      class Todo {
        friend std::ostream& operator<<(std::ostream& o, const Todo& td);
      };
    
      std::ostream& operator<<(std::ostream& o, const Todo& td) {
        o << "[ 중요도: " << td.priority << "] " << td.job_desc;
        return o;
      }
      int main() {
        std::set<Todo> todos;
        print_set(todos);
      }

'공부 > C++' 카테고리의 다른 글

C++ 저장&링킹  (1) 2025.03.01
C++ 컨테이너 클래스  (0) 2025.03.01
new&delete  (0) 2025.03.01
포인터  (0) 2025.02.22
C++ main()에 대해  (0) 2025.02.19

+ Recent posts

let textNodes = document.querySelectorAll("div.tt_article_useless_p_margin.contents_style > *:not(figure):not(pre)"); textNodes.forEach(function(a) { a.innerHTML = a.innerHTML.replace(/`(.*?)`/g, '$1'); });