2017-08-24 1 views
1

Je suis nouveau en C++ et je veux savoir ce qui est meilleur/propre?Implémenter la fonction C++ à l'intérieur ou à l'extérieur de l'espace de noms?

  1. Implémentation d'une fonction dans un espace de noms
  2. Utilisez le nom complet pour la mettre en oeuvre

par exemple:

//foo.h 
namespace foo 
{ 
    void bar(); 
} 

1.)

//foo.cpp 
namespace foo 
{ 
    void bar() 
    { 
     //do something 
    } 
} 

ou 2 .)

//foo.cpp 
void foo::bar() 
{ 
    //do something 
} 
+1

Ce n'est pas grave, utilisez ce que vous vous sentez plus pratique avec. – user0042

+1

Dans 2, il n'est pas évident que 'foo' est un' namespace' et pas un 'class'. avec 1, vous avez un bloc supplémentaire et donc généralement indentation supplémentaire. – Jarod42

Répondre

2

La première option est préférable pour regrouper et assembler plusieurs fonctions du même espace de noms, elle est plus claire et moins verbeuse si vous en avez plusieurs par exemple. La seconde est sémantiquement la même mais est moins agréable pour les yeux si vous avez plusieurs fonctions dans le même espace de nom.

2

Il n'y a pas de différence au résultat du code compilé ce que-si-jamais. C'est purement une question de style. Utilisez ce que vous aimez le plus (ou quel est actuellement le style d'utilisation de la base de code sur laquelle vous travaillez).