몇 가지 수업이 있습니다. 하나의 클래스는 그것을 필요로하는 누구에게나 보여지기로되어 있고, 나머지 클래스들은 오직 주요 클래스에만 접근 할 수있는 도우미 클래스들 (물론 그 중 일부는 구조체들입니다)입니다. 나는 원래 이것을 교장 클래스 내에서 중첩 된 클래스로 구현했지만, 더 많은 헬퍼 클래스를 추가 할 때 헤더 파일을 복잡하게 만들기 시작했다. 이제는 헬퍼 클래스를 이름이 까다로운 별개의 네임 스페이스에 두었습니다. 그러나 더 나은 방법이 있다고 생각합니다. 익명의 네임 스페이스를 사용하고 싶습니다. 그러나 헤더에서 도우미 클래스를 가져올 수 없습니다. 왜냐하면 헤더의 멤버 변수로 표시되기 때문입니다.다른 나라의 도우미 클래스를 어떻게 숨겨야합니까?
여기 지금 내 헤더 파일의 구조의 단순화 된 버전입니다, 마이너스 경비 포함 :
namespace __TopSecretVisibleNamespace {
class Invisible{
};
}
using namespace __TopSecretVisibleNamespace;
class Visible {
public:
Visible();
private:
Invisible sneaky;
};
어떤 생각을?
일반적인 규칙은 '세부 사항'네임 스페이스입니다. '__T ... '는 구현을 위해 예약되어 있습니다 (밑줄 * 또는 *와 밑줄 뒤에 대문자가 오는 이름). –
그래,'detail'. 그리고'네임 스페이스 디테일 사용하기 '를하지 마십시오. –
Jerry - "구현을 위해 예약되어 있습니까?" 다른 네임 스페이스에 클래스를 선언 할 수 없지만 클래스를 선언 할 수는 없습니까? Cat - Ooh, 감사합니다. using 문이 헤더 파일 외부로 전달되지 않았다고 생각했습니다. –