Question de C++ sur les &truc = pouet; - C++ - Programmation
Marsh Posté le 29-01-2003 à 19:10:48
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 ?
Marsh Posté le 29-01-2003 à 19:13:57
gloop a écrit : en fait j'ai un peu de mal à te comprendre |
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.
Marsh Posté le 29-01-2003 à 19:20:01
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 :
|
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 ?
Marsh Posté le 29-01-2003 à 19:34:41
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
Marsh Posté le 29-01-2003 à 19:47:02
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
|
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_); ?
Marsh Posté le 29-01-2003 à 19:50:46
pour les références t'as pas besoin de & devant,
instBox.transform(xform_);
et pas instBox.transform(&xform_);
Marsh Posté le 29-01-2003 à 19:56:49
gloop a écrit : pour les références t'as pas besoin de & devant, |
je dois bien foutre un & quelque part quand même
Marsh Posté le 29-01-2003 à 20:00:02
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
Marsh Posté le 29-01-2003 à 20:02:08
ah ba donc dans le constructeur je dois bien mettre
&xform_(getCurrentTransform()) ?
Marsh Posté le 29-01-2003 à 20:06:33
dans ta classe tu mets comme donnée membre:
oaTransform &xform_;
et dans ton constructeur:
xform_=getCurrentTransform();
Marsh Posté le 29-01-2003 à 20:08:30
gloop a écrit : dans ta classe tu mets comme donnée membre: |
ok !
donc dans mon .h je fous oaTransform &xform_;
et dans le constructeur xform_(getCurrentTransform());
Marsh Posté le 29-01-2003 à 22:28:57
Code :
|
LeGreg
Marsh Posté le 30-01-2003 à 06:10:42
J'espère que joce maîtrise mieux le php que le C++ .
Marsh Posté le 30-01-2003 à 13:32:02
Musaran a écrit : J'espère que joce maîtrise mieux le php que le C++ . |
je maitrise pas le C++, j'en ai quasiment jamais fait
Marsh Posté le 31-01-2003 à 04:24:13
Je suis prêt à te répondre du haut de mon... amateurisme.
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.
Si une image vaut mille mots, un exemple en vaut bien cent.
Marsh Posté le 31-01-2003 à 04:26:30
Musaran a écrit : Je suis prêt à te répondre du haut de mon... amateurisme. |
disons que c'est facile à faire quand on maitrise un peu plus le sujet
Marsh Posté le 29-01-2003 à 19:00:24
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 )