여러 클래스가 있고 둘 다 동일한 네임 스페이스와 프로젝트에 포함하려면 하나만 포함하면 모든 클래스가 제공됩니다. ? 나는 이것을 가지고 놀았지만 막 다른 길을 계속 지키고있다.C++ 네임 스페이스 도움말
미리 감사드립니다.
여러 클래스가 있고 둘 다 동일한 네임 스페이스와 프로젝트에 포함하려면 하나만 포함하면 모든 클래스가 제공됩니다. ? 나는 이것을 가지고 놀았지만 막 다른 길을 계속 지키고있다.C++ 네임 스페이스 도움말
미리 감사드립니다.
하나의 포함 만 원한다면 네임 스페이스는 아무 관계가 없습니다.
#include
문만 포함하는 파일을 만들 수 있습니다. 이 같은
뭔가 :
//classes file
#include "classA"
#include "classB"
#include "classC"
그리고는 그들 모두를 포함하는 단 하나는
#include "classes"
실제 예를
는 STL에서 찾을 수 있습니다.는 예를 들어 vector
을 가지고 :
#ifndef _GLIBCXX_VECTOR
#define _GLIBCXX_VECTOR 1
#pragma GCC system_header
#include <bits/stl_algobase.h>
#include <bits/allocator.h>
#include <bits/stl_construct.h>
#include <bits/stl_uninitialized.h>
#include <bits/stl_vector.h>
#include <bits/stl_bvector.h>
#ifndef _GLIBCXX_EXPORT_TEMPLATE
# include <bits/vector.tcc>
#endif
#ifdef _GLIBCXX_DEBUG
# include <debug/vector>
#endif
#endif /* _GLIBCXX_VECTOR */
당신은 단지 #include <vector>
네임 스페이스를하고 헤더 파일은 관련이없는에서이 모든 것을 얻는다. 포함시킬 단일 헤더 파일을 제공하려면 'include-all'헤더 추가에 대한 Tom의 조언과 함께 또는 모든 헤더를 단일 파일로 압축 할 수 있습니다 (코드베이스가 실제로 포함되지 않는 한 나쁜 생각 일 수 있습니다 단일 요소의 변경으로 모든 것을 다시 컴파일해야하므로 안정적입니다. 차이가 포장이
#ifndef HEADER_GUARD_H_
#define HEADER_GUARD_H_
namespace A {
class TheA {};
}
namespace B {
class TheB {};
}
namespace A { // you can even reopen the namespace
class AnotherA {};
}
#endif
하는 것으로 : 당신은 전처리가 유사한 파일을 생성합니다 톰의 대답에 ... 하나 개 이상의 파일을 제공해야하는지 여부 어쨌든 당신은 같은 헤더 내에서 서로 다른 네임 스페이스를 사용할 수 있습니다 컴파일러에 내용을 전달하기 전에 수동으로 생성 된 헤더.