Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
4730 connectés 

 


Dernière réponse
Sujet : [C++] Classes, objets, ...
godbout

BENB a écrit a écrit :

 
Il faut aussi prendre confiance en toi...  




 
euh, si c'est me dire que je suis un bon programmeur c'est pas gagne :D


Votre réponse
Nom d'utilisateur    Pour poster, vous devez être inscrit sur ce forum .... si ce n'est pas le cas, cliquez ici !
Le ton de votre message                        
                       
Votre réponse


[b][i][u][strike][spoiler][fixed][cpp][url][email][img][*]   
 
   [quote]
 

Options

 
Vous avez perdu votre mot de passe ?


Vue Rapide de la discussion
godbout

BENB a écrit a écrit :

 
Il faut aussi prendre confiance en toi...  




 
euh, si c'est me dire que je suis un bon programmeur c'est pas gagne :D

BENB

Godbout a écrit a écrit :

ok j'crois qu'on peut donc s'arreter la, sinon ca voudrait dire que je suis un cas desespere :D
 
ca va venir avec le temps
 
Merci ;)  




Il faut aussi prendre confiance en toi...

godbout ok j'crois qu'on peut donc s'arreter la, sinon ca voudrait dire que je suis un cas desespere :D
 
ca va venir avec le temps
 
Merci ;)
El_gringo

BENB a écrit a écrit :

GodBout > El_Gringo est un peu violent (sisi :D) mais il n'a pas tors (sur le fond en tout cas :D) si tu peux faire le 2 te semble equivalent au 1 alors fait le 2...
 
youdontcare > :jap: du pragmatisme quoi...  
 
 




 
rohh, violent... c toi qui y va fort là ! :D

BENB GodBout > El_Gringo est un peu violent (sisi :D) mais il n'a pas tors (sur le fond en tout cas :D) si tu peux faire le 2 te semble equivalent au 1 alors fait le 2...
 
youdontcare > :jap: du pragmatisme quoi...

 

[edtdd]--Message édité par BENB--[/edtdd]

youdontcare Godbout > attention à ne pas tomber dans "l'excès" de réflexion. tu essayes de sortir une règle générale de cas particuliers qui peuvent être fonction de goût personnels ou de choix particuliers dépendant d'un contexte. essayer de trouver une "règle magique" qui marche partout dans tous les cas ne peut que te frustrer, car ça n'existe pas :)
 
les réponses précédentes t'ont déjà donné pas mal de points sur lesquels bosser. relis-les et applique-les. autre chose : lorsque j'ai commencé le c++, ça m'a énormément aidé de regarder du code déjà fini, comme les sources des mfc ou de la sdk de max. là encore ce ne sont pas des règles absolues à suivre en toutes circonstances mais des idées potentielles à appliquer dans ton code.
 
bref, tes problèmes seront résolus avec l'expérience, pas en essayant de tout comprendre d'un coup :)
godbout

BENB a écrit a écrit :

 
ben si tu n'a besoin de a et de b que dans Somme et que tu souhaite pas connaitre leur valeur anterieure lors de l'execution de Somme c'est le second choix...  




 
En fait en gros la fonction Somme je vais l'appeler dans une methode public Load qui va appeler elle meme la fonction Somme.
Le programme appelle juste Load avec un param et le reste se fait tout seul (normalement :D)
 
El_Gringo -> si je pose autant de questions c'est justement pour eviter de programmer comme un porc ;)

El_gringo

Godbout a écrit a écrit :

 
 
La question n'est pas la ;)
 
moi je parlais de faire
 
private:
int a;
int b;
int Somme()
 
ou  
private:
int Somme(a+b);  
 
 




 
Bah si la 2e solution pose pas de pb, faut prendre celle là.
En C aussi tu peux programmer comme un porc, et mettre toutes tes variables en global !
Le attributs (variables) de ta classe, c un peu comme des variables globales en C

BENB

Godbout a écrit a écrit :

 
 
La question n'est pas la ;)
 
moi je parlais de faire
 
private:
int a;
int b;
int Somme()
 
ou  
private:
int Somme(a+b);  
 
 




ben si tu n'a besoin de a et de b que dans Somme et que tu souhaite pas connaitre leur valeur anterieure lors de l'execution de Somme c'est le second choix...

godbout

Godbout a écrit a écrit :

Au fait si j'ai bien compris, une fonction en private n'a pas besoin de parametre, si on met en variable private les variables dont elle se sert ?  




 
La question n'est pas la ;)
 
moi je parlais de faire
 
private:
int a;
int b;
int Somme()
 
ou  
private:
int Somme(a+b);

 

[edtdd]--Message édité par Godbout--[/edtdd]

El_gringo

Godbout a écrit a écrit :

Je capte l'histoire des variables globales et des parametres (en C), mais ce qui m'embete c'est le fait que les variables private sont dispo pour toutes les fonctions de la classes, alors je vois pas a koi ca sert de passer des param.
 
et je vois pas comment les renvoyes, les reutiliser, etc..  




 
Les attributs (ou variables) qui sont généralement privés, sont en effet accessibles partout dans ta classe, y a donc aucun intéret à les mettre en paramètre de tes fonctions. Mais, le variables locales, ça existe encore en objet tu sais !?

chrisbk ben disons que parfois elles ont besoin d'autre chose que la variable private  
 
 
bon, attends que je trouve un exemple.....
 
class Interpole
{
public:
  ....
  float getInterp(float val);
 
private:
 float start, end;
 float interp(float val);
}
 
float Interpole::getInterp(float val)
{
 return interp(val);
}
 
 
float Interpole::interp(float val)
{
 return (start * (1-val) + end * (val) );
}
 
 
bon l'exemple est culcul parce que la fonction public ne fais que retourner le res de la fonction private, mais peut etre maintenant tu vois l'idee : val n'as pas besoin d'etre variable membre, elle sert trop peu (si y'a d'autre calcul plus complique pour l'interpolation, tu feras peut etre d'aure fonction private avec val comme parametre)
BENB

Godbout a écrit a écrit :

Je capte l'histoire des variables globales et des parametres (en C), mais ce qui m'embete c'est le fait que les variables private sont dispo pour toutes les fonctions de la classes, alors je vois pas a koi ca sert de passer des param.
 
et je vois pas comment les renvoyes, les reutiliser, etc..  
 
 




J'ai la une classe qui masque tout un module. seule elle est visible de l'exterieur, et elle grere en interne de grands tableaux, il arrive que l'on soit oblige de retrouver un index dans ce tableau depuis la valeur du tableau, mais ceci est rare et se produit toujours a l'interieur de la classe. De toute maniere l'utilisateur de la classe n'a pas a connaitre le contenu des tableaux...
int GetIndex(toto *) renvoi donc l'index de toto et est private...
 
Une vision simplifiee de l'ojet consiste a dire :
les methodes sont publiques et les donnees privees...
Donc une methode que tu rend privee est une methode que tu ne souhaite pas voir utilisee hors de ta classe, mais elle peut servir a faire des comparaisons des recherches...

 

[edtdd]--Message édité par BENB--[/edtdd]

godbout Je capte l'histoire des variables globales et des parametres (en C), mais ce qui m'embete c'est le fait que les variables private sont dispo pour toutes les fonctions de la classes, alors je vois pas a koi ca sert de passer des param.
 
et je vois pas comment les renvoyes, les reutiliser, etc..

 

[edtdd]--Message édité par Godbout--[/edtdd]

chrisbk ben oui elle peuvent avoir des parametres.
 
encore heureux :D
 
Si tu veux ces des fonctions comme les autres : tu les mets en foncton pour pas avoir plusieurs fois le meme bout de code a droite a gauche . (mais ce qu'elle prenne en parametre n'a pas a etre obligatoirement stocke en variable membre, de meme qu'en C tu ne feras pas une variable globale pour t'eviter a faire des paramtres....tu me suis ?)
godbout pourtant j'ai recupere un loader 3ds fait avec des classes et toutes les fonctions private avaient des parametres, mais c'est surement parce qu'elles etaient recursives.
 
Sur ce je pars bosser ;)
BENB

Godbout a écrit a écrit :

Au fait si j'ai bien compris, une fonction en private n'a pas besoin de parametre, si on met en variable private les variables dont elle se sert ?  




Ne te pose pas de questions, ne cherche pas de moyen mnemotechnique... et ca viendra tout seul...
un methode n'a de parametre que si elle a besoin d'informations exterieures a la classe a laquelle elle appartient...

godbout Au fait si j'ai bien compris, une fonction en private n'a pas besoin de parametre, si on met en variable private les variables dont elle se sert ?
godbout ben surtout que j'ai deja mes petites conventions, mais bien sur pas pour les classes encore.
BENB

Godbout a écrit a écrit :

Eh ben au moins j'ai le choix avec tout ca :D
C'est vrai que les Maj/min j'aime pas trop.
Pour le reste je crois que ca va venir en programmant.  




En fait peut importe le choix que tu fait.
Le plus important c'est de s'y tenir sur un projet
et de ne pas melanger les conventions...
le pire serait de commencer avec les m_
pour finir avec Maj/Min...

BENB

legreg a écrit a écrit :

 
personnellement je pense que c'est sale(tm)
et que ce n'est pas qu'un probleme de gout :).
 
Enfin bon.. tu dois surement etre une deesse de la programmation qui a toujours l'esprit clair quand elle attaque son code et ne fait jamais d'erreur de frappe :D
 
LEGREG  




Je comprend ta reaction, mais dans le cadre de convention edictee plus haut, ce n'est pas surhumain, et tu prends tres vite l'habitude : une majuscule en initiale donc variable de classe...
et surtout le probleme ne se pose generalement que dans les acesseurs, ce qui rends la chose tout a fait propre...
En effet Dans un contexte de noms long si temperature et Temperature se trouve dans le meme espace de nommage c'est que forcement Temperature == temperature sinon l'un au moins des deux doit etre qualifie pour devenir maxTemperature par ex.

 

[edtdd]--Message édité par BENB--[/edtdd]

godbout Eh ben au moins j'ai le choix avec tout ca :D
C'est vrai que les Maj/min j'aime pas trop.
Pour le reste je crois que ca va venir en programmant.

Copyright © 1997-2025 Groupe LDLC (Signaler un contenu illicite / Données personnelles)