프로그래밍/C++
#49. 전방 선언
코딩하는상후니
2022. 7. 20. 22:08
해당 객체가 존재한다는 표시 용도
보통 해당 객체 내에 객체를 사용 시 포인터로 주소를 받게 되는데 이 때 사용
@해당 객체는 몇 바이트인가 ?? <<= 질문에 답이 가능하면 가능. (설계도완성)
#include "Monster.h"
class Player
{
public:
int _hp = 0;
int _attack = 10;
Monster m1;
};
Player p1;
=> Player 클래스의 크기를 알기 위해선 Monster.h 추가해주어야 함.
*반대로 Monster* 를 들고 있다면 ??
=> 헤더 추가가 필요 없다! why ??
Monster 가 어떤 데이터를 가지고 있는지 몰라도 Player 에서는 Monster* 를 저장하기 때문에
임시적으로 class Monster 를 적어두는 표시해두고
포인터 (주소받는곳,4/8바이트 고정크기 ) 를 선언해 Monster 객체의 주소를 받는다.
결국, 불필요한 헤더파일 추가를 피할 수 있다.
class Monster;
class Player
{
public:
int _hp = 0;
int _attack = 10;
Monster* m1;
};
본 내용은 인프런의 루키스님 강의를 듣고 정리한 내용입니다.