[Effective C++] #10 대입 연산자와 *this의 참조자

2022. 1. 12. 22:29· 언어/Effective C++
목차
  1. [Effective C++] #10 대입 연산자와 *this의 참조자

[Effective C++] #10 대입 연산자와 *this의 참조자

 

Scott Meyers의 "Effective C++"를 통해, C++ 구현에 필요한 개념들을 이해하고, 기록하기 위함입니다. 해당 항목은 2장 "생성자, 소멸자 및 대입 연산자", 항목 10 "대입 연산자는 *this의 참조자를 반환하게 하자"에 해당하는 내용입니다.

 

 


 

대입 연산자
 대입연산자 = { =, *=, /=, %=, +=, -=, <<=, >>=, &=, ^=, |= }
 
 class A {
 public:
    ...
    A& operator=(const A& 우변객체){
    	...
        return *this;
    }
 };

대입 연산자는 위 코드에서 살펴본 대로, "= *= /= %= += -= <<= >>= &= ^= |="를 의미합니다. "="의 경우 단순 할당 연산자로, 우변의 피연산자의 값이 좌변의 피연산자로 지정된 객체에 저장되도록 합니다. 클래스 형식의 객체에 대한 할당은 "operator="함수에 의해 실행됩니다. 이 연산자 함수의 기본 동작은 비트 복사를 수행합니다. 그 외의 것들은 복합 할당자로 각각의 역할이 다릅니다.

 

좌변 객체의 참조자를 반환
clas A {
public:
    A& operator+=(const A& 우변_객체){	// A&, A 객체에 대한 참조자를 반환값으로 설정
    	...
        return *this;
    }
};

 대입 연산자는 좌면 인자에 대한 참조자를 반환하도록 구현해야 합니다. 단순 할당자를 다루는 대입 연산자(operator=) 뿐만 아니라, 모든 형태의 대입 연산자에도 이 약속은 지켜져야 합니다!

 

대입 연산자는 *this를 반환하도록 합시다

'언어 > Effective C++' 카테고리의 다른 글

[Effective C++] #13 자원 관리 객체, std::auto_ptr, std::shared_ptr  (0) 2022.01.14
[Effective C++] #11 중복 참조와 자기 대입 연산자  (0) 2022.01.12
[Effective C++] #9 가상 함수를 호출하는 생성자, 소멸자  (0) 2022.01.10
[Effective C++] #8 소멸자가 던지는 예외  (0) 2022.01.10
[Effective C++] #7 기본 클래스와 가상 소멸자  (0) 2022.01.07
  1. [Effective C++] #10 대입 연산자와 *this의 참조자
'언어/Effective C++' 카테고리의 다른 글
  • [Effective C++] #13 자원 관리 객체, std::auto_ptr, std::shared_ptr
  • [Effective C++] #11 중복 참조와 자기 대입 연산자
  • [Effective C++] #9 가상 함수를 호출하는 생성자, 소멸자
  • [Effective C++] #8 소멸자가 던지는 예외
Hardii2
Hardii2
개발 블로그Hardii2 님의 블로그입니다.
Hardii2
개발 블로그
Hardii2
전체
오늘
어제
  • 분류 전체보기
    • 알고리즘
    • 웹 개발
      • Node.js
      • React
    • 게임개발
      • DirectX12
      • 관련 지식
      • Unreal C++
      • Unreal 블루프린트
    • 언어
      • Effective C++
      • Basic C++
      • 디자인 패턴
      • 자료구조
      • 기술 질문
    • 문제 풀이
      • BOJ 문제 풀이
      • Programmers 문제 풀이
      • geeksForgeeks 문제 풀이
    • 수학
      • 확률과 통계
      • 게임수학
    • 개인프로젝트
    • 그룹프로젝트
      • PM
      • Dev
    • Github

블로그 메뉴

  • 홈
  • 글쓰기

공지사항

인기 글

태그

  • Effective C++
  • 정렬
  • 트리
  • 최단 경로
  • 기술 질문
  • C++
  • unreal
  • set
  • dfs
  • Unreal Blueprint
  • DP
  • stl
  • 디자인 패턴
  • 그래프
  • BOJ
  • 알고리즘
  • 우선순위 큐
  • BFS
  • 개발
  • programmers

최근 댓글

최근 글

hELLO · Designed By 정상우.v4.2.2
Hardii2
[Effective C++] #10 대입 연산자와 *this의 참조자
상단으로

티스토리툴바

개인정보

  • 티스토리 홈
  • 포럼
  • 로그인

단축키

내 블로그

내 블로그 - 관리자 홈 전환
Q
Q
새 글 쓰기
W
W

블로그 게시글

글 수정 (권한 있는 경우)
E
E
댓글 영역으로 이동
C
C

모든 영역

이 페이지의 URL 복사
S
S
맨 위로 이동
T
T
티스토리 홈 이동
H
H
단축키 안내
Shift + /
⇧ + /

* 단축키는 한글/영문 대소문자로 이용 가능하며, 티스토리 기본 도메인에서만 동작합니다.