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

  FORUM HardWare.fr
  Programmation
  C++

  question de cour pour un newbies

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

question de cour pour un newbies

n°289900
grosmethos
Posté le 20-01-2003 à 13:17:20  profilanswer
 

Salut
 
Voici l'exemple de creationd de classe du cour :
class String{
public:
String();
String(char*);
~String()
void Add(char*);
....
//données membres:
char* string;
unsigned int length
....
};
 
//2eme construncteur:
String::String(char* s)
{length=strlen(s)...
....
...}

 
Si je comprend bien , les données menbres sont PRIVATE mais le constructeur lui y accede quand meme, car il les initialises????

mood
Publicité
Posté le 20-01-2003 à 13:17:20  profilanswer
 

n°289903
Harkonnen
Modérateur
Un modo pour les bannir tous
Posté le 20-01-2003 à 13:36:02  profilanswer
 

les données membres peuvent être accédées par toutes les méthodes de la classe, dont fait partie le constructeur.
le fait qu'elles soient private ne les masque qu'aux yeux des autres classes.

n°289914
grosmethos
Posté le 20-01-2003 à 13:57:00  profilanswer
 

ok , en fait c'est genre de variables globales pour la classe..
 
Encore une petite alors :)
j'ai une fonction membre :donc voici l'implemntation,sachant que heure est une donnée membre:
void Temps::ajusterTemps(int h,int,m,int s){
heure=(h>=0&&h<=24)?h:0;
..
...
}

Je connais l'operateur ternaire qui permet de remplacer un if totu simple..mais la je comprend ,quelle valeur va prendre heure, si vaut 10 par exemple????

n°289916
western
AJMM
Posté le 20-01-2003 à 14:02:49  profilanswer
 

Code :
  1. void Temps::ajusterTemps(int h,int,m,int s){
  2. heure=(h>=0&&h<=24)?h:0;
  3. ..
  4. ...
  5. }

 
Equivaut à  
si heure est compris entre 0 et 24 alors heure=h sinon=0
 
PS. en théorie si heure=0 ou =24, c'est la même chose donc
heure=(h>=0&&h<24)?h:0

n°289918
Harkonnen
Modérateur
Un modo pour les bannir tous
Posté le 20-01-2003 à 14:05:30  profilanswer
 

si h vaut 10, alors heure vaudra 10 !
 
ta fonction signifie que :
 
si h est compris entre 0 et 24, alors donne à heure la valeur de h, sinon heure = 0
 
par contre, il te manque une parenthèse à la fin de ta ligne
 
et l'opérateur ternaire, c laid et illisible :kaola:
 
à éviter si possible !


---------------
J'ai un string dans l'array (Paris Hilton)
n°289920
grosmethos
Posté le 20-01-2003 à 14:06:13  profilanswer
 

merci bien
 j'aurais du trovuer tout seul pour l'attribution du heure... :sweat:  

n°289969
Harkonnen
Modérateur
Un modo pour les bannir tous
Posté le 20-01-2003 à 15:14:04  profilanswer
 

ben ouais... :sarcastic:
 
encore un bel exemple de code rendu illisible par l'opérateur ternaire... quelle mouche a donc piqué K&R d'implémenter cette atrocité ??
 
si tu avais eu des if... else if ... à la place, tout aurait été bien plus clair !


---------------
J'ai un string dans l'array (Paris Hilton)
n°292293
Musaran
Cerveaulté
Posté le 23-01-2003 à 03:42:52  profilanswer
 

Une bonne mouche.
Ça permet d'éviter de fractionner une formule sur plusieurs lignes, en créant des variables temporaires qu'il faut nommer.
 
Bon, bien sûr, il est mal utilisé ici...

Code :
  1. if(h<0 || h>=24)
  2. heure=0;


---------------
Bricocheap: Montage de ventilo sur paté de mastic silicone
n°292297
gilou
Modérateur
Modzilla
Posté le 23-01-2003 à 03:48:13  profilanswer
 

Harkonnen a écrit :

ben ouais... :sarcastic:
 
encore un bel exemple de code rendu illisible par l'opérateur ternaire... quelle mouche a donc piqué K&R d'implémenter cette atrocité ??
 
si tu avais eu des if... else if ... à la place, tout aurait été bien plus clair !


K&R l'on implementé afin d'ecrire des macros avec des tests en cascade je pense.
A+,


---------------
There's more than what can be linked! --    Iyashikei Anime Forever!    --  AngularJS c'est un framework d'engulé!  --
n°292329
Harkonnen
Modérateur
Un modo pour les bannir tous
Posté le 23-01-2003 à 08:51:14  profilanswer
 

Musaran a dans sa signature :

Pourquoi as tu mis tout ton code en commentaire ? Ca compile plus vite comme ça.


[:rofl] :lol:
 
Sinon, pour l'opérateur ternaire, je veux bien admettre qu'il ait certains avantages, mais les gens ont tendance à le mettre à toutes les sauces. Résultat : dans 98% des cas ou il est utilisé, on pourrait s'en passer.
 


---------------
J'ai un string dans l'array (Paris Hilton)

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  C++

  question de cour pour un newbies

 

Sujets relatifs
Question de gro debutant?Juste une petite question sur la structure de mon site
redirection en PHP, question facile ...[MySQL] Question sur un Rand MySQL
question concernant Eclipse et windows NTSQL Question simple...
Question de sécuritéQuestion résultat dans une requette SQL.
encore une question d'accessQuestion con sur le traitement des chaines de caract...
Plus de sujets relatifs à : question de cour pour un newbies


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR