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
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
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
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);
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
24 avril 2008 à 12:47
C'est trop flou ce que tu dit. Précise un peu, donne un exemple concret.
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
24 avril 2008 à 13:00
Exemple
j'ai mon .h
Et j'ai mon .cpp comme ceci :
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)?
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)?
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
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 ! ;)
Je pourrai l'enregistrer chez moi j'ai commencé a lire et j'aimerai le finir ! ;)
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
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
http://www.commentcamarche.net/forum/affich 6095574 c encodage iso latin1 utf8#dernier
pourrai tu m'aider c'est important !
Merci
24 avril 2008 à 14:26
UP