지금, 내 프로젝트에는 두 개의 클래스와 메인이 있습니다. 두 클래스가 서로 상속하므로 둘 다 forward 선언을 사용합니다. #include 문 바로 아래 첫 번째 객체에서 클래스 정의 앞에 두 개의 enum을 초기화합니다. 그 클래스 내에서 두 enum을 모두 잘 사용할 수 있습니다. 그러나 첫 번째 클래스에서 상속받은 다른 클래스의 열거 형을 사용하려고하면 열거 형이 선언되지 않았다는 오류가 발생합니다. 두 번째 클래스에서 열거 형을 재정의하려고하면 재정의 오류가 발생합니다.C++ 선언 된 클래스 외부에서 전역 적으로 선언 된 enum을 사용할 수없는 이유는 무엇입니까?
나는 심지어 내가 그냥 읽어 트릭을 사용하고 자신의 네임 스페이스에있는 각 열거 퍼팅 시도했다; 그게 아무것도 바뀌지 않았어. '플레이어'가 선언되지 않은 말하는 오류가 대신
void AddPlayer(Player::Enum playerNumber);
과 :
#ifndef CLASSONE_H
#define CLASSONE_H
namespace Player
{
enum Enum
{
One,
Two,
};
}
#endif
그런 다음 두 번째 클래스 내부 앞에서 선언 열거를 사용하려고 : 여기
은 예입니다 .
이것을 보여줄 수있는 간단한 코드를 보여줄 수 있습니까? – WhirlWind
두 번째 클래스는 # "Classone.h"를 포함합니까? – Eclipse
예, classone에 classtwo가 포함되어 있습니다. – Roderick