Utiliser la STL dans les règles de l'art
Bonjour,
Je voudrais être sur et certain d'une chose sur l'utilisation de la STL.
En fait je veux où et quand est-ce qu'il faut mettre le using namespace std;, et aussi quand il faut rajouter std:: devant les objets/types provenant de la STL.
Sur un exemple simple, voila comment j'implémente d'habitude dites-moi si y'a un truc qui cloche ou qui pourrait être mieux écrit:
maclasse.h
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27
| #ifndef MACLASSE_H
#define MACLASSE_H
#include <iostream>
#include <string>
class MaClasse {
public:
MaClasse( std::string chaine = "" );
MaClasse( const MaClasse &mc );
~MaClasse();
friend std::ostream& operator<<(std::ostream &flux, const MaClasse mc);
private:
std::string chaine;
};
#endif |
maclasse.cpp
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25
| using namespace std;
#include <iostream>
#include <string>
#include "maclasse.h"
// Constructeur simple
MaClasse :: MaClasse( string chaine )
: chaine(chaine) { }
// Constructeur par recopie
MaClasse :: MaClasse( const MaClasse &mc )
: chaine( mc.chaine ) { }
// Destructeur
MaClasse :: ~MaClasse() { }
// Insertion de flux
ostream& operator<<(ostream &flux, const MaClasse mc) {
return (flux << mc.chaine);
} |
main.cpp
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14
| using namespace std;
#include <iostream>
#include "maclasse.h"
int main() {
MaClasse mc("Une chaine");
cout << mc;
return 0;
} |