인프런 커뮤니티 질문&답변

rcasio님의 프로필 이미지
rcasio

작성한 질문수

[C++과 언리얼로 만드는 MMORPG 게임 개발 시리즈] Part1: C++ 프로그래밍 입문

오른값 참조 (rvalue reference)

_pet = new Pet(*knight._pet);

작성

·

184

0

class Pet { };
에서 생성자에

Pet(const Pet& pet) 같은 복사 생성자를 만들어 주지 않았는데

_pet = new Pet(*knight._pet);

이 코드가 통과 되는게 이해가 안갑니다 ㅜㅜ

 

답변 1

1

Rookiss님의 프로필 이미지
Rookiss
지식공유자

class를 만들 때 별도로 명시하지 않아도
컴파일러가 자동으로 만들어주는 함수들이 있습니다.
(기본 생성자, 소멸자, 복사 생성자, 복사 연산자, 이동 생성자, 이동 연산자 등)

항상 자동 생성되는건 아니고 일부 코드를 넣으면
컴파일러가 자동 생성하지 않을 수도 있습니다.
일명 [Rule of Three]라고 하는데 복사 생성자, 복사 연산자, 소멸자 중 하나를 선언했으면,
나머지도 우리가 알아서 만들어야 합니다.

rcasio님의 프로필 이미지
rcasio

작성한 질문수

질문하기