인프런 영문 브랜드 로고
인프런 영문 브랜드 로고

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

움직이는YM님의 프로필 이미지
움직이는YM

작성한 질문수

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

얕은 복사 vs 깊은 복사 2에서 질문

해결된 질문

작성

·

177

0

분명히 전에 설명해 주신것 같아서

CPP파일을 뒤지는데 어디서 설명해 주셨는지 모르겠어서 질문드립니다.

Knight& operator=(const Knight& knight) 

{

cout << "operator=(const Knight&)" << endl;

Player::operator=(knight);

_pet = knight._pet;

_hp = knight._hp;

return *this;

}

복사 대입 연산자 설명 부분에서 컴파일러가 아무것도 해주지 않으므로 

Player::operator=(knight);

_pet = knight._pet;

이런건 프로그래머가 적어줘야 한다고 하셨는데

여기서

Player::operator=(knight); 

이 문법 뜻이 뭐였는지 생각이 나지 않습니다.

혹시 어디서 설명하셨는지 혹은 무슨 의미인지 궁금합니다.

답변 2

1

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

Player::operator=(knight); 

~는 Knight의 부모 클래스인 Player의 복사 대입 연산자를 직접 호출해주는 것입니다.
Knight도 Player의 기능을 상속받아 사용하는데,
그 부분들에 대한 복사도 처리해줘야 하기 때문이죠.

0

답변 감사합니다

움직이는YM님의 프로필 이미지
움직이는YM

작성한 질문수

질문하기