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)?