Bonjour,
J'ai une classe composée d' un point h et un point cpp.
Ma question serait :
- si je fais dans le .cpp
maclasse::setvariableclasse(var v); est ce que c'est different si j'avais fais directement mavariableclasse = v;
car j'ai remarqué que dans le .cpp j'ai quand meme acces aux variables privées !
Exemple
j'ai mon .h
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
28
29 #ifndef Traitement_H #define Traitement_H #include <iostream> #include <fstream> #include<stdio.h> #include <string> #include<set> using namespace std; class Traitement { //privees set<string > mots; public: void lireMots(const char *s); //MAJ des sets void setMots(string &s){mots.insert(s);} //Acces set<string> getMots(){return mots;} }; #endif
Et j'ai mon .cpp comme ceci :
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
28 void Traitement::lireMots(const char *s){ string line; ifstream f ; f.open(s,ifstream::out); //tant qu'on n'a pas atteint la fin de fichier for(unsigned no_line = 0;std::getline(f,line);++no_line){ unsigned beg = 0; unsigned end = 1; for(unsigned no_mot=0;end <line.size();++no_mot){ //On positionne a la fin du mot la variable "end" for(;end < line.size();++end); string mot(line,beg,end-beg);//recuperation du mot Traitement::setMots(mot);//ajout du mot dans la liste beg = end + 1; end = beg + 1; }//fin ligne }//fin fichier } set<string> s = Traitement::getMots(); ...
J'aimerai savoir si ca vaut la peine de faire la fonction setMots car en faisant directement(dans .cpp) mots.insert(mot);
je n'ai pas de probleme quand je compile mais je ne suis pas sur que cela marche pareil.
Conclusion : peut on se passer des fonctions set et get pour pouvoir travailler sur des variables privées (correctement)?
Partager