[Basic C++] #17_오버라이딩의 특수한 경우 다섯 번째, 복제 생성자, 대입 연산자

2022. 4. 24. 20:56· 언어/Basic C++
목차
  1. [Basic C++] #17_오버라이딩의 특수한 경우 네 번째, 디폴트 인자 값

[Basic C++] #17_오버라이딩의 특수한 경우 네 번째, 디폴트 인자 값

C++ 개발에서 오버라이딩을 사용 시 주의할 점에 대해서 알아보겠습니다.

"전문가를 위한 C"의 9 항목, "클래스 상속 활용 테크닉"에 해당하는 내용입니다.

 

 


 

파생 클래스에서 '명시적'으로 복제 생성자를 정의할 경우
// 슈퍼 혹은 베이스 클래스
class Super
{
public:
    Super();
    Super(const Super& _super);
};
// 서브 혹은 파생 클래스
class Sub : public Super
{
public:
    Sub();
    Sub(const Sub& _sub);
};

// 파생 클래스의 복제 생성자
Sub::Sub(const Sub& _sub) : Super(_sub)
{}

 

클래스 안에서 동적 메모리 할당을 사용할 때 복제 생성자와 대입 연산자를 정의하면 편리하게 이용할 수 있죠.

하지만, 명시적 혹은 사용자 정의 복제 생성자 혹은 대입 연산자를 파생 클래스에서 작성할 경우 주의해야  할 점이 있습니다.

파생 클래스에서 복제 생성자를 명시적으로 정의할 경우, 반드시 부모의 복제 생성자를 호출해 주어야 합니다.

만약 호출하지 않으면, 부모 객체의 데이터 생성은 디폴트 생성자가 사용되기 때문이죠. 

대입 연산자도 마찬가지로, 부모의 대입 연산자를 호출해 주어야 합니다.

 

파생 클래스에서 복제 생성자 혹은 대입 연산자를 명시적으로 정의할 경우,
반드시 부모 클래스의 것 또한 호출해 주어야 합니다.


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

[Basic C++] #19_virtual, virtual의 내부 구현  (0) 2022.04.30
[Basic C++] #18_오버라이딩의 특수한 경우 여섯 번째, 일반 메소드의 오버라이딩  (0) 2022.04.30
[Basic C++] #16_오버라이딩의 특수한 경우 네 번째, 디폴트 인자 값  (0) 2022.04.03
[Basic C++] #15 오버라이딩의 특수한 경우 세 번째  (0) 2022.03.26
[Basic C++] #14 오버라이딩의 특수한 경우 두 번째  (0) 2022.03.25
  1. [Basic C++] #17_오버라이딩의 특수한 경우 네 번째, 디폴트 인자 값
'언어/Basic C++' 카테고리의 다른 글
  • [Basic C++] #19_virtual, virtual의 내부 구현
  • [Basic C++] #18_오버라이딩의 특수한 경우 여섯 번째, 일반 메소드의 오버라이딩
  • [Basic C++] #16_오버라이딩의 특수한 경우 네 번째, 디폴트 인자 값
  • [Basic C++] #15 오버라이딩의 특수한 경우 세 번째
Hardii2
Hardii2
Hardii2
개발 블로그
Hardii2
전체
오늘
어제
  • 분류 전체보기
    • 알고리즘
    • 웹 개발
      • Node.js
      • React
    • 게임개발
      • DirectX12
      • 관련 지식
      • Unreal C++
      • Unreal 블루프린트
    • 언어
      • Effective C++
      • Basic C++
      • 디자인 패턴
      • 자료구조
      • 기술 질문
    • 문제 풀이
      • BOJ 문제 풀이
      • Programmers 문제 풀이
      • geeksForgeeks 문제 풀이
    • 수학
      • 확률과 통계
      • 게임수학
    • 개인프로젝트
    • 그룹프로젝트
      • PM
      • Dev
    • Github

블로그 메뉴

  • 홈
  • 글쓰기

공지사항

인기 글

태그

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

최근 댓글

최근 글

hELLO · Designed By 정상우.v4.2.2
Hardii2
[Basic C++] #17_오버라이딩의 특수한 경우 다섯 번째, 복제 생성자, 대입 연산자
상단으로

티스토리툴바

개인정보

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

단축키

내 블로그

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

블로그 게시글

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

모든 영역

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

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