게시판 즐겨찾기
편집
드래그 앤 드롭으로
즐겨찾기 아이콘 위치 수정이 가능합니다.
클래스가 서로를 교차 포함할때 컴파일에러 해결방법 있을까요??
게시물ID : programmer_22651짧은주소 복사하기
작성자 : 우와우와우왕
추천 : 0
조회수 : 1747회
댓글수 : 6개
등록시간 : 2018/10/13 20:30:15
옵션
  • 본인삭제금지
2개의 클래스가 서로를 포함하는 코드입니다.



#include<iostream>

using namespace std;

class Weapon;
class Human;

class Human
{
public :
int a;
Weapon myWeapon;
Human() :a(3)
{}

};

class Weapon
{
public :
int a;
Human myHuman;

Weapon() :a(3)
{}

};

int main(void)
{

Human human;
Weapon weapon;

printf("human--myWeapon--a : %d\n", human.myWeapon.a);

printf("weapon--myHuman--a : %d", weapon.myHuman.a);

return 0;
}



Human은 자신의 무기(Weapon)가 무엇인지 알기위해, Weapon은 자신의 소지자(Human)가 누구인지를 알 기 위해

서로를 포함하는 예제코드를 작성하였습니다.



그런데 컴파일을 하면 아래와 같은 에러문이 나옵니다.

오류 C2079 'Human::myWeapon'은(는) 정의되지 않은 class 'Weapon'을(를) 사용합니다. Contain_Test 15
오류 C2228 '.a' 왼쪽에는 클래스/구조체/공용 구조체가 있어야 합니다. Contain_Test 45






인터넷을 찾아보니

class Weapon;
class Human;

이 2개 문장을 추가하면 해결 되는듯 해서 따라해보아도 마찬가지로 에러가 나오네요...

어떻게 해야할까요??
전체 추천리스트 보기
새로운 댓글이 없습니다.
새로운 댓글 확인하기
글쓰기
◀뒤로가기
PC버전
맨위로▲
공지 운영 자료창고 청소년보호