Si vous ne voulez qu'une seule inclusion, les espaces de noms n'ont rien à voir avec cela.
Vous pouvez créer un fichier contenant uniquement des instructions #include
.
Quelque chose comme ceci:
//classes file
#include "classA"
#include "classB"
#include "classC"
Et comprennent tous avec un seul comprend
#include "classes"
Un exemple concret peut être trouvé dans la STL.
Prenez vector
par exemple:
#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 */
Vous obtenez tout cela simplement en faisant #include <vector>