C++ classe et attributs

Résolu/Fermé
velderama Messages postés 199 Date d'inscription mardi 26 février 2008 Statut Membre Dernière intervention 11 mai 2011 - 24 avril 2008 à 12:12
velderama Messages postés 199 Date d'inscription mardi 26 février 2008 Statut Membre Dernière intervention 11 mai 2011 - 24 avril 2008 à 14:30
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 !

4 réponses

Char Snipeur Messages postés 9813 Date d'inscription vendredi 23 avril 2004 Statut Contributeur Dernière intervention 3 octobre 2023 1 297
24 avril 2008 à 13:55
C'est bien ce que je pensais. tu es à l'intérieur de la class (si on parle bien de l'endroit en gras) donc forcement tu as acces aux memebres privés. D'ailleurs, tu peux te passer de la porté Traitement:: et juste faire un setMots(mot) ou directement mots.insert(mot);
1
velderama Messages postés 199 Date d'inscription mardi 26 février 2008 Statut Membre Dernière intervention 11 mai 2011 10
24 avril 2008 à 14:26
Merci charSnipeur ! ta reponse m'a aidé et eclaircit !

UP
0
Char Snipeur Messages postés 9813 Date d'inscription vendredi 23 avril 2004 Statut Contributeur Dernière intervention 3 octobre 2023 1 297
24 avril 2008 à 12:47
C'est trop flou ce que tu dit. Précise un peu, donne un exemple concret.
0
velderama Messages postés 199 Date d'inscription mardi 26 février 2008 Statut Membre Dernière intervention 11 mai 2011 10
24 avril 2008 à 13:00
Exemple

j'ai mon .h
#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 :

  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)?
0
velderama Messages postés 199 Date d'inscription mardi 26 février 2008 Statut Membre Dernière intervention 11 mai 2011 10
24 avril 2008 à 14:29
Char ton "nouvelle" Le Dragon de la farce sur ton profil

Je pourrai l'enregistrer chez moi j'ai commencé a lire et j'aimerai le finir ! ;)
0
velderama Messages postés 199 Date d'inscription mardi 26 février 2008 Statut Membre Dernière intervention 11 mai 2011 10
24 avril 2008 à 14:30
ty connais tu en encodage?
http://www.commentcamarche.net/forum/affich 6095574 c encodage iso latin1 utf8#dernier

pourrai tu m'aider c'est important !

Merci
0