프로그래밍/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; 
};
 

 


본 내용은 인프런의 루키스님 강의를 듣고 정리한 내용입니다.

 

'프로그래밍 > C++' 카테고리의 다른 글

#51. 함수 객체  (0) 2022.07.20
#50. 함수 포인터  (0) 2022.07.20
#48. C++ 캐스팅  (0) 2022.07.20
#47. 깊은 복사 & 얕은 복사  (0) 2022.07.20
#46. 타입변환  (0) 2022.07.20