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

  FORUM HardWare.fr
  Programmation
  C++

  Question de C++ sur les &truc = pouet;

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Question de C++ sur les &truc = pouet;

n°296542
joce
Architecte / Développeur principal
"BugHunter"
Posté le 29-01-2003 à 19:00:24  profilanswer
 

J'ai dans une fonction :
 
  const oaTransform         &xform_=getCurrentTransform();
 
Je voudrais passer ca dans le constructeur de la classe de base.
 
Dans le .h je declare quoi ?
 
const oaTransform         &xform_; ?
 
et dans le constructeur je mets quoi ?
 
&xform(getCurrentTransform()) ?
 
ensuite pour l'utilisation de cette variable sachant qu'avant il y avait par exemple :
 
    instBox.transform(getCurrentTransform());
 
je remplace par
 
    instBox.transform(&xform_);
 
ou par  
 
    instBox.transform(xform_);
 
Merci d'avance pour les eclaircissements (il est tard :D)

mood
Publicité
Posté le 29-01-2003 à 19:00:24  profilanswer
 

n°296552
gloop
Posté le 29-01-2003 à 19:10:48  profilanswer
 

en fait j'ai un peu de mal à te comprendre
est ce que tu veux conserver la référence comme donnée membre de ta classe ou j'ai pas compris ce que tu voulais faire ?

n°296554
joce
Architecte / Développeur principal
"BugHunter"
Posté le 29-01-2003 à 19:13:57  profilanswer
 

gloop a écrit :

en fait j'ai un peu de mal à te comprendre
est ce que tu veux conserver la référence comme donnée membre de ta classe ou j'ai pas compris ce que tu voulais faire ?


 
le truc c'est qu'en gros    
 
const oaTransform         &xform_=getCurrentTransform(); est declaree dans plusieurs classes derivees, et parfois meme getCurrentTransform() est utilise la ou on pourrait utiliser xform_.
Donc pour unifier tout ca je voudrais passer l'initialisation de xform_ dans le constructeur en protected et ne plus utiliser que xform_ dans les classes derivees.


Message édité par joce le 29-01-2003 à 19:15:02
n°296557
gloop
Posté le 29-01-2003 à 19:20:01  profilanswer
 

tu peux pas avoir de références sans les initialiser, du coup si tu la veux comme donnée membre de ta classe tu dois déclarer un  
oaTransform xform_. Dabs ton constructeur, tu fais une copie de l'objet donné par getCurrentTransorm (), soit:
 

Code :
  1. xform_ = getCurrentTransform ();


et pour l'utilisation ca change rien.
 
Mais bon,c une copie de l'objet , ptet qu'il te faut vraiment une référence ?

n°296561
gloop
Posté le 29-01-2003 à 19:34:41  profilanswer
 

sinon tu utilises directement getCurrentTransform() partout ou tu utilises xform_. Si getCurrentTransform () est un simple accesseur ca changera rien. sauf un appel de fonction supplémentaire. Mais si  en + c une fonction inline, alors ca changera rien

n°296567
joce
Architecte / Développeur principal
"BugHunter"
Posté le 29-01-2003 à 19:47:02  profilanswer
 

gloop a écrit :

tu peux pas avoir de références sans les initialiser, du coup si tu la veux comme donnée membre de ta classe tu dois déclarer un  
oaTransform xform_. Dabs ton constructeur, tu fais une copie de l'objet donné par getCurrentTransorm (), soit:
 

Code :
  1. xform_ = getCurrentTransform ();


et pour l'utilisation ca change rien.
 
Mais bon,c une copie de l'objet , ptet qu'il te faut vraiment une référence ?


humm ok, mais c'est bizarre, parce que dans le .h y a d'autre variable du style  
 
Boolean &machin; de déclaré.
 
Sinon la fonction transform prend comme param un & oaTransform const.
 
Donc à priori dans mon constructeur je fous un xform_(getCurrentTransform()) et ensuite je balance un instBox.transform(&xform_);  ?
 
 

n°296573
gloop
Posté le 29-01-2003 à 19:50:46  profilanswer
 

pour les références t'as pas besoin de & devant,
instBox.transform(xform_);
et pas instBox.transform(&xform_);

n°296578
joce
Architecte / Développeur principal
"BugHunter"
Posté le 29-01-2003 à 19:56:49  profilanswer
 

gloop a écrit :

pour les références t'as pas besoin de & devant,
instBox.transform(xform_);
et pas instBox.transform(&xform_);

je dois bien foutre un & quelque part quand même [:wam]

n°296583
electrasta​r
Posté le 29-01-2003 à 19:59:50  profilanswer
 

j'adore le mix avec les pouet et les machins :D

n°296584
gloop
Posté le 29-01-2003 à 20:00:02  profilanswer
 

Le & tu le mets que pour la déclaration pour dire que c'est une référence. ensuite tu l'utilises "normalement", tout est transparent pour toi

mood
Publicité
Posté le 29-01-2003 à 20:00:02  profilanswer
 

n°296590
joce
Architecte / Développeur principal
"BugHunter"
Posté le 29-01-2003 à 20:02:08  profilanswer
 

ah ba donc dans le constructeur je dois bien mettre  
&xform_(getCurrentTransform()) ? :pt1cable:

n°296592
gloop
Posté le 29-01-2003 à 20:06:33  profilanswer
 

dans ta classe tu mets comme donnée membre:
oaTransform &xform_;
 
et dans ton constructeur:
xform_=getCurrentTransform();  

n°296593
joce
Architecte / Développeur principal
"BugHunter"
Posté le 29-01-2003 à 20:08:30  profilanswer
 

gloop a écrit :

dans ta classe tu mets comme donnée membre:
oaTransform &xform_;
 
et dans ton constructeur:
xform_=getCurrentTransform();  
 


ok !
donc dans mon .h je fous oaTransform &xform_;
et dans le constructeur xform_(getCurrentTransform());
 

n°296717
LeGreg
Posté le 29-01-2003 à 22:28:57  profilanswer
 

Code :
  1. class A {
  2. public:
  3.    int & b;
  4.    A(int& _b) : b(_b) {}
  5. };
  6. int c = 0;
  7. A a(c);
  8. cout << a.b; // ici a.b vaut 0
  9. c = 3;
  10. cout << a.b ; // ici a.b vaut 3


 
LeGreg


---------------
voxel terrain render engine | animation mentor
n°296718
joce
Architecte / Développeur principal
&#034;BugHunter&#034;
Posté le 29-01-2003 à 22:32:08  profilanswer
 

thx ! :)

n°296794
Musaran
Cerveaulté
Posté le 30-01-2003 à 06:10:42  profilanswer
 

J'espère que joce maîtrise mieux le php que le C++ :sweat: .


---------------
Bricocheap: Montage de ventilo sur paté de mastic silicone
n°297015
joce
Architecte / Développeur principal
&#034;BugHunter&#034;
Posté le 30-01-2003 à 13:32:02  profilanswer
 

Musaran a écrit :

J'espère que joce maîtrise mieux le php que le C++ :sweat: .

je maitrise pas le C++, j'en ai quasiment jamais fait

n°297675
Musaran
Cerveaulté
Posté le 31-01-2003 à 04:24:13  profilanswer
 

Je suis prêt à te répondre du haut de mon... amateurisme. :whistle:
 
Juste une remarque: essaie de donner plus de contexte dans tes question, surtout des extraits 'indépendants' de code.
Autrement l'interprétation de la description et de la terminologie du problème est laissé à l'imagination et risque d'être... créative. :D
 
Si une image vaut mille mots, un exemple en vaut bien cent. :jap:


---------------
Bricocheap: Montage de ventilo sur paté de mastic silicone
n°297676
joce
Architecte / Développeur principal
&#034;BugHunter&#034;
Posté le 31-01-2003 à 04:26:30  profilanswer
 

Musaran a écrit :

Je suis prêt à te répondre du haut de mon... amateurisme. :whistle:
 
Juste une remarque: essaie de donner plus de contexte dans tes question, surtout des extraits 'indépendants' de code.
Autrement l'interprétation de la description et de la terminologie du problème est laissé à l'imagination et risque d'être... créative. :D
 
Si une image vaut mille mots, un exemple en vaut bien cent. :jap:

disons que c'est facile à faire quand on maitrise un peu plus le sujet ;)


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

  Question de C++ sur les &truc = pouet;

 

Sujets relatifs
[PHP] question toute bete [resolu]Question utilisation d'un lexique (en html)
[Javamail] Question express sur les événementsQuestion Scrolling svp..
Question de syntaxe[PHP]Petite question sur sizeof
[PHP] question existentielle (enfin pas trop)Question de prototype ...
[HTML]Question sur les liens[J++] question d'utilisation...
Plus de sujets relatifs à : Question de C++ sur les &truc = pouet;


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