class Namespace::Class;
왜 이렇게해야합니까? :
namespace Namespace {
class Class;
}
컴파일러는 VC ++ 8.0을 사용하여 다음을 발행합니다.
오류 C2653 : 'Namespace': 클래스 또는 네임 스페이스 이름이 아닙니다.
여기서 문제는 컴파일러 Namespace
가 클래스인지 네임 스페이스 인지 알 수 없다는 것입니다 . 그러나 왜 이것이 전진 선언이기 때문에 이것이 중요합니까?
네임 스페이스에 정의 된 클래스를 전달하는 다른 방법이 있습니까? 위의 구문은 네임 스페이스를 "다시 열고"정의를 확장 한 것 같습니다. Class
실제로 정의되지 않은 경우 어떻게해야 Namespace
합니까? 이로 인해 어느 시점에서 오류가 발생합니까?
A::B
(가) A
네임 스페이스 식별자 대신 클래스 이름입니까?
Namespace
클래스 또는 네임 스페이스 인지 왜 중요한지에 대한 질문에는 아무런 문제가 없습니다 . 구문과의 언어 화염 전쟁을 시작할 가능성이 있다는 힌트를 얻지 마십시오.