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
maclasse.cpp
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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
main.cpp
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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); }
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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; }
Partager