C++ classe et attributs
Résolu
velderama
Messages postés
199
Date d'inscription
Statut
Membre
Dernière intervention
-
velderama Messages postés 199 Date d'inscription Statut Membre Dernière intervention -
velderama Messages postés 199 Date d'inscription Statut Membre Dernière intervention -
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 !
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 !
A voir également:
- C++ classe et attributs
- Classe ram - Guide
- Bluetooth mercedes classe a - Forum Autoradio
- Dans le code de la page, modifiez la couleur de fond de la classe .pix. - Forum Réseaux sociaux
- Logiciel de chronométrage et classement gratuit - Télécharger - Sport
- Sti2d classe poubelle - Forum Programmation
4 réponses
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);
C'est trop flou ce que tu dit. Précise un peu, donne un exemple concret.
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)?
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 ! ;)
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
UP