Besoin d'aide sur l'initialisation d'une variable dans un constructeur - C++ - Programmation
Marsh Posté le 08-03-2004 à 17:11:24
t'es sur que t'as compris ce que c'est que l'initialisation de m_var ?
Marsh Posté le 08-03-2004 à 17:11:51
ben ça dépend des arguments de m_var()
edit: , à croire qu'il a un bot
Marsh Posté le 08-03-2004 à 17:16:09
ReplyMarsh Posté le 08-03-2004 à 18:06:58
pour être plus explicite, j'ai une classe avec le constructeur maClasse(const int n, const int v0, const int v1 ...);
j'ai une autre classe qui hérite de cette classe
class C2 : public maClass {
private :
maClass m_var;
public:
C2 (const int n, const int v0, const int v1 ...);
};
et je dois initialiser m_var;
Une des méthodes étant de faire
C2 (const int n, const int v0, const int v1) : m_var(n, v0, v1);
mais si on a "..." à la fin du constructeur, on fait comment pour initialiser m_var?
Si jamais c'est pas encore assez clair, je mettrais un exemple complet...
mici d'avance
Marsh Posté le 08-03-2004 à 18:09:31
ça existe ça les va_args pour les constructeurs ? si ça passe (ou si certains compilateurs l'accèptent), je déconseille absolutement
Marsh Posté le 08-03-2004 à 18:14:37
mais pour répondre à ta question, non tu ne peux pas t'en sortir, il faut utilisé les macro va_* pour amorcer le traitement, donc impossible dans l'une initialisation
Marsh Posté le 08-03-2004 à 19:00:57
ReplyMarsh Posté le 08-03-2004 à 19:01:40
bjone a écrit : |
default: std::cout << "Ta chatte !" << std::flush;
Marsh Posté le 08-03-2004 à 19:02:07
sinon kptn , tu veux quoi initiliser une liste ou un truc du genre ?
Marsh Posté le 08-03-2004 à 19:02:43
ReplyMarsh Posté le 09-03-2004 à 10:55:18
J'explique mon probleme :
j'ai une librairie statique qui marche sous vc++ et je dois la faire marcher sous builder. Pour ça, je dois créer une interface pour chaque classe, ainsi qu'une classe qui implémente cette interface et c'est cette dernière qui va possèder en private une instance de la classe d'origine.
Code :
|
Ensuite il suffit de définir un constructeur et un destructeur externe à la classe, mais bon, ça c'est une autre histoire...
Mon problème est que si la classe d'origine est définie comme suit :
Code :
|
Et là, je dois faire C2Impl, mais comment...?
Sans compté que je n'ai pas l'implémentation de C1 ou C2 sans quoi je n'aurais pas eu à m'emmerder à faire tt ça ^_^
Voilà, j'espère que les explications sont suffisantes... Mais mon espoir de pouvoir en faire qq chose s'amenuise...
Marsh Posté le 09-03-2004 à 11:59:31
Ouais, t'as raison, à force de vouloir trop simplifier la ralité j'ai dis une grosse connerie...
En fait le typedef est défini comme suit
je te met les trucs tels qui sont dans lmon fichier :
typedef IloSimpleArray<IloNum> IloNumArrayBase;
avec
typedef double IloNum;
et
#define IloSimpleArray Array4
avec Array4 une classe du type
template <class X> class IloArray4;
Mais bon, ça change pas grand chose au pb d'origine...
Marsh Posté le 09-03-2004 à 13:39:00
ecoute file du vrai code entre cpp
C2(const int a, int n, C1 v0 ...);
Marsh Posté le 09-03-2004 à 15:04:32
puisque tu insistes...
Code :
|
Voilà le code cpp d'origine... Si ça peut aider...
Edit Harkonnen : les balises [ cpp] et [/ cpp] ne sont pas faites pour les chiens
Marsh Posté le 09-03-2004 à 15:48:30
encore eut-il fallu les connaîtres c balises...
je le saurais pour la prochaine fois
Enfin... ça me donne pas la réponse à mon pb...
Marsh Posté le 09-03-2004 à 15:52:19
kptn a écrit : encore eut-il fallu les connaîtres c balises... |
elles sont pas assez visibles dans le formulaire de réponse ?
Marsh Posté le 09-03-2004 à 16:44:17
j'utilisais le textbox "Réponse rapide", donc non les balises sont pas visibles
M'enfin, j'aurais du y regarder un peu plus avant...
Mais bon, c bien beau de critique la forme, mais ça fait pas avancer le shmilblick pour antant...!!
...
...
tant pis... j'arriverais bien à trouver qq chose par moi même
Marsh Posté le 09-03-2004 à 16:46:46
au fait, j'ai oublié :
"A mort les Harkonnen! Vive les Atreides!!"
Marsh Posté le 09-03-2004 à 17:15:02
IloNum v1 ...);
non fait faut pas rigoler, ça c'est absolument ni du C, ni du C++, si VC++ accepte ça, c'est de la folie douce
Marsh Posté le 09-03-2004 à 17:48:07
Taz a écrit : IloNum v1 ...); |
à ma conaissance ni VC++ (6) ni C++ Builder doivent bouffer ça...
Marsh Posté le 09-03-2004 à 18:09:24
pourtant j'ai une lib statique qui a été compilé avec vc++ 6 et les .h possèdent ça... dc le compilo doit bien l'accepter...
C kler que si ct moi, je ne me serais pas amuser à mettre un truc pareil
Marsh Posté le 09-03-2004 à 18:11:43
ben vas y fait un test, crée un truc avec une pareille signature
moi je sors
Marsh Posté le 09-03-2004 à 18:14:28
les fichiers que j'ai compilent...
mais bon, je ferais un test avec un seul fichier demain histoire de savoir ce qu'il y a derrière exactement et je te dirais ça
Marsh Posté le 09-03-2004 à 20:24:03
fo faire une routine qui se balade sur la pile....
bonjour le truc casse-gueule... (surtout que passer un pointeur sur Ilo serait ptet plus propre quand même)
Marsh Posté le 08-03-2004 à 17:10:14
bonjour,
j'ai petite question de C++ :
lorsque vous avez un constructeur d'une classe comme suit :
maClasse(const int n, const int v0, const int v1) : m_var(v0, v1);
et que vous voulez changer le constructeur en :
maClasse(const int n, const int v0, const int v1 ...) : m_var(???);
qu'est-ce qui faut mettre dans m_var?
---------------
"il n'y a que deux choses qui sont infinies, l'univers et la betise humaine ... et encore pour l'univers je n'en suis pas sûr !!!" Einstein