En C#, il est simple de placer toutes les classes dans un espace de noms unique. Je comprends comment un espace de noms fonctionne en C++ à un niveau simple. Mais quand vient le temps de rassembler plusieurs fichiers pour apparaître comme un espace de noms, je suis vraiment confus. Il est quelque chose comme ceci possible:comment envelopper plusieurs fichiers dans le même espace de noms en C++
/* NetTools.cpp
blade 7/12/2014 */
using namespace std;
using namespace NetTools;
#include "NetTools.h"
int main()
{
cout << "testing" << endl;
return 0;
}
//####### EOF
/* NetTools.h
blade 12/7/2014 */
#ifndef NETTOOLS_H
#define NETTOOLS_H
#include <iostream>
#include <string>
#include <vector>
#include <algorithm>
#include <cmath>
namespace NetTools
{
}
#endif
// #### EOF
/* Commands.h
blade 7/12/2014 */
#include "NetTools.h"
#ifndef COMMANDS_H
#define COMMANDS_H
namespace NetTools
{
}
#endif
// ###### EOF
Je sépare chaque déclaration de classe dans son .h et la mise en œuvre dans son fichier cpp, mais je veux que tout soit dans le même espace de noms.
Si vous mettez des déclarations apparaissant dans différents fichiers d'en-tête dans le même espace de noms, elles le partageront. Je ne comprends pas quel est votre problème réel. Notez également, vous devriez inclure des choses dans vos gardes d'inclusion, pas dehors. –