Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
Fabien LE LEZ
On 03 Jul 2007 19:58:36 GMT, Michael <michael.at.gmail.dot.com>:
[C++ Error] Unit1.cpp(47): E2034 Impossible de convertir 'b *' en 'd1 *'
Pourtant d1 hérite de b
Oui, d1 hérite de b, donc tout objet de classe d1 est un objet de classe b. Ce qui ne veut pas dire que tout objet de classe b soit un objet de classe d1.
Si toi, tu es sûr que le pointeur en question pointe vers un d1, utilise dynamic_cast<> pour donner cette information au compilateur.
??????
Ton clavier est endommagé : la touche "?" est coincée. Je t'invite à en acheter un autre : http://www.clubic.com/comparer-prix/clavier/3-1-0.html
On 03 Jul 2007 19:58:36 GMT, Michael <michael.at.gmail.dot.com>:
[C++ Error] Unit1.cpp(47): E2034 Impossible de convertir 'b *' en 'd1 *'
Pourtant d1 hérite de b
Oui, d1 hérite de b, donc tout objet de classe d1 est un objet de
classe b.
Ce qui ne veut pas dire que tout objet de classe b soit un objet de
classe d1.
Si toi, tu es sûr que le pointeur en question pointe vers un d1,
utilise dynamic_cast<> pour donner cette information au compilateur.
??????
Ton clavier est endommagé : la touche "?" est coincée.
Je t'invite à en acheter un autre :
http://www.clubic.com/comparer-prix/clavier/3-1-0.html
On 03 Jul 2007 19:58:36 GMT, Michael <michael.at.gmail.dot.com>:
[C++ Error] Unit1.cpp(47): E2034 Impossible de convertir 'b *' en 'd1 *'
Pourtant d1 hérite de b
Oui, d1 hérite de b, donc tout objet de classe d1 est un objet de classe b. Ce qui ne veut pas dire que tout objet de classe b soit un objet de classe d1.
Si toi, tu es sûr que le pointeur en question pointe vers un d1, utilise dynamic_cast<> pour donner cette information au compilateur.
??????
Ton clavier est endommagé : la touche "?" est coincée. Je t'invite à en acheter un autre : http://www.clubic.com/comparer-prix/clavier/3-1-0.html
Michael
Pourtant d1 hérite de b
Oui, d1 hérite de b, donc tout objet de classe d1 est un objet de classe b. Ce qui ne veut pas dire que tout objet de classe b soit un objet de classe d1.
Si toi, tu es sûr que le pointeur en question pointe vers un d1, utilise dynamic_cast<> pour donner cette information au compilateur.
Je voulais juste éviter la création de 2 fonctions dans Manager:
d1 * GetD1() { return new d1(); } d2 * GetD2() { return new d2(); }
Mais je peux faire comme ça, c'est pas un souci finalement...
??????
Ton clavier est endommagé : la touche "?" est coincée. Je t'invite à en acheter un autre : http://www.clubic.com/comparer-prix/clavier/3-1-0.html
OOOKKKK, mmerrcciii duu connseillll
^^
Pourtant d1 hérite de b
Oui, d1 hérite de b, donc tout objet de classe d1 est un objet de
classe b.
Ce qui ne veut pas dire que tout objet de classe b soit un objet de
classe d1.
Si toi, tu es sûr que le pointeur en question pointe vers un d1,
utilise dynamic_cast<> pour donner cette information au compilateur.
Je voulais juste éviter la création de 2 fonctions dans Manager:
d1 * GetD1() { return new d1(); }
d2 * GetD2() { return new d2(); }
Mais je peux faire comme ça, c'est pas un souci finalement...
??????
Ton clavier est endommagé : la touche "?" est coincée.
Je t'invite à en acheter un autre :
http://www.clubic.com/comparer-prix/clavier/3-1-0.html
Oui, d1 hérite de b, donc tout objet de classe d1 est un objet de classe b. Ce qui ne veut pas dire que tout objet de classe b soit un objet de classe d1.
Si toi, tu es sûr que le pointeur en question pointe vers un d1, utilise dynamic_cast<> pour donner cette information au compilateur.
Je voulais juste éviter la création de 2 fonctions dans Manager:
d1 * GetD1() { return new d1(); } d2 * GetD2() { return new d2(); }
Mais je peux faire comme ça, c'est pas un souci finalement...
??????
Ton clavier est endommagé : la touche "?" est coincée. Je t'invite à en acheter un autre : http://www.clubic.com/comparer-prix/clavier/3-1-0.html
OOOKKKK, mmerrcciii duu connseillll
^^
Michael
Finalement:
template <class T> T * GetQuery() { return new T(conString); }
Finalement:
template <class T>
T * GetQuery()
{
return new T(conString);
}
template <class T> T * GetQuery() { return new T(conString); }
Sylvain
Michael wrote on 03/07/2007 22:45:
Finalement:
template <class T> T * GetQuery() { return new T(conString); }
en gardant le modèle d'origine, et en supposant que les classes d1 et d2 soient polymorphes (implémentent des virtuels défini par b), le seul changement:
b* d = m.GetClass();
permettait de régler le pb.
Sylvain.
Michael wrote on 03/07/2007 22:45:
Finalement:
template <class T>
T * GetQuery()
{
return new T(conString);
}
en gardant le modèle d'origine, et en supposant que les classes d1 et d2
soient polymorphes (implémentent des virtuels défini par b), le seul
changement:
template <class T> T * GetQuery() { return new T(conString); }
en gardant le modèle d'origine, et en supposant que les classes d1 et d2 soient polymorphes (implémentent des virtuels défini par b), le seul changement:
b* d = m.GetClass();
permettait de régler le pb.
Sylvain.
Michael
en gardant le modèle d'origine, et en supposant que les classes d1 et d2 soient polymorphes (implémentent des virtuels défini par b), le seul changement:
b* d = m.GetClass();
permettait de régler le pb.
Oui je sais, mais d1 et d2 ont des fonctions qui ne sont pas définies initialement dans b et que je veux garder spécifiques...
en gardant le modèle d'origine, et en supposant que les classes d1 et d2
soient polymorphes (implémentent des virtuels défini par b), le seul
changement:
b* d = m.GetClass();
permettait de régler le pb.
Oui je sais, mais d1 et d2 ont des fonctions qui ne sont pas définies
initialement dans b et que je veux garder spécifiques...
en gardant le modèle d'origine, et en supposant que les classes d1 et d2 soient polymorphes (implémentent des virtuels défini par b), le seul changement:
b* d = m.GetClass();
permettait de régler le pb.
Oui je sais, mais d1 et d2 ont des fonctions qui ne sont pas définies initialement dans b et que je veux garder spécifiques...
Michael
Finalement:
template <class T> T * GetQuery() { return new T(conString); }
Comment utiliser une boost::STATIC_ASSERT pour vérifier que T est bien de type d1 ou d2?
Finalement:
template <class T>
T * GetQuery()
{
return new T(conString);
}
Comment utiliser une boost::STATIC_ASSERT pour vérifier que T est bien de
type d1 ou d2?
On Jul 4, 4:58 pm, Michael <michael.at.gmail.dot.com> wrote:
en gardant le modèle d'origine, et en supposant que les classes d1 et d2 soient polymorphes (implémentent des virtuels défini par b), le seul changement:
b* d = m.GetClass();
permettait de régler le pb.
Oui je sais, mais d1 et d2 ont des fonctions qui ne sont pas définies initialement dans b et que je veux garder spécifiques...
Il y a une chose que je n'arrive pas trop à comprendre. Tu te trouves quelque part dans le code, et tu veux créer un objet. D'un type connu, ou non ? Si l'appelant de GetClass() sais ce qu'il veut créer, où est le problème de définir deux fonctions, getD1() et getD2(), et appeler celle qui convient. Et s'il ne sait pas, si la décision est prise quelque part dans getClass() (qui doit en fait s'appeler getObject(), ou getInstance()), alors, comment est-ce que l'appelant puisse faire autrement que ne travailler qu'avec la base ?
-- James Kanze (GABI Software) email: Conseils en informatique orientée objet/ Beratung in objektorientierter Datenverarbeitung 9 place Sémard, 78210 St.-Cyr-l'École, France, +33 (0)1 30 23 00 34
On Jul 4, 4:58 pm, Michael <michael.at.gmail.dot.com> wrote:
en gardant le modèle d'origine, et en supposant que les classes d1 et d2
soient polymorphes (implémentent des virtuels défini par b), le seul
changement:
b* d = m.GetClass();
permettait de régler le pb.
Oui je sais, mais d1 et d2 ont des fonctions qui ne sont pas définies
initialement dans b et que je veux garder spécifiques...
Il y a une chose que je n'arrive pas trop à comprendre. Tu te
trouves quelque part dans le code, et tu veux créer un objet.
D'un type connu, ou non ? Si l'appelant de GetClass() sais ce
qu'il veut créer, où est le problème de définir deux fonctions,
getD1() et getD2(), et appeler celle qui convient. Et s'il ne
sait pas, si la décision est prise quelque part dans getClass()
(qui doit en fait s'appeler getObject(), ou getInstance()),
alors, comment est-ce que l'appelant puisse faire autrement que
ne travailler qu'avec la base ?
--
James Kanze (GABI Software) email:james.kanze@gmail.com
Conseils en informatique orientée objet/
Beratung in objektorientierter Datenverarbeitung
9 place Sémard, 78210 St.-Cyr-l'École, France, +33 (0)1 30 23 00 34
On Jul 4, 4:58 pm, Michael <michael.at.gmail.dot.com> wrote:
en gardant le modèle d'origine, et en supposant que les classes d1 et d2 soient polymorphes (implémentent des virtuels défini par b), le seul changement:
b* d = m.GetClass();
permettait de régler le pb.
Oui je sais, mais d1 et d2 ont des fonctions qui ne sont pas définies initialement dans b et que je veux garder spécifiques...
Il y a une chose que je n'arrive pas trop à comprendre. Tu te trouves quelque part dans le code, et tu veux créer un objet. D'un type connu, ou non ? Si l'appelant de GetClass() sais ce qu'il veut créer, où est le problème de définir deux fonctions, getD1() et getD2(), et appeler celle qui convient. Et s'il ne sait pas, si la décision est prise quelque part dans getClass() (qui doit en fait s'appeler getObject(), ou getInstance()), alors, comment est-ce que l'appelant puisse faire autrement que ne travailler qu'avec la base ?
-- James Kanze (GABI Software) email: Conseils en informatique orientée objet/ Beratung in objektorientierter Datenverarbeitung 9 place Sémard, 78210 St.-Cyr-l'École, France, +33 (0)1 30 23 00 34
Michael
Il y a une chose que je n'arrive pas trop à comprendre. Tu te trouves quelque part dans le code, et tu veux créer un objet. D'un type connu, ou non ? Si l'appelant de GetClass() sais ce qu'il veut créer, où est le problème de définir deux fonctions, getD1() et getD2(), et appeler celle qui convient. Et s'il ne sait pas, si la décision est prise quelque part dans getClass() (qui doit en fait s'appeler getObject(), ou getInstance()), alors, comment est-ce que l'appelant puisse faire autrement que ne travailler qu'avec la base ?
Tu as tout à fait raison, je me suis embrouillé pour rien.
Je sais à tout moment quel type de classe je suis censé récupérer, le problème ne se pose donc absolument pas...
Il y a une chose que je n'arrive pas trop à comprendre. Tu te
trouves quelque part dans le code, et tu veux créer un objet.
D'un type connu, ou non ? Si l'appelant de GetClass() sais ce
qu'il veut créer, où est le problème de définir deux fonctions,
getD1() et getD2(), et appeler celle qui convient. Et s'il ne
sait pas, si la décision est prise quelque part dans getClass()
(qui doit en fait s'appeler getObject(), ou getInstance()),
alors, comment est-ce que l'appelant puisse faire autrement que
ne travailler qu'avec la base ?
Tu as tout à fait raison, je me suis embrouillé pour rien.
Je sais à tout moment quel type de classe je suis censé récupérer, le
problème ne se pose donc absolument pas...
Il y a une chose que je n'arrive pas trop à comprendre. Tu te trouves quelque part dans le code, et tu veux créer un objet. D'un type connu, ou non ? Si l'appelant de GetClass() sais ce qu'il veut créer, où est le problème de définir deux fonctions, getD1() et getD2(), et appeler celle qui convient. Et s'il ne sait pas, si la décision est prise quelque part dans getClass() (qui doit en fait s'appeler getObject(), ou getInstance()), alors, comment est-ce que l'appelant puisse faire autrement que ne travailler qu'avec la base ?
Tu as tout à fait raison, je me suis embrouillé pour rien.
Je sais à tout moment quel type de classe je suis censé récupérer, le problème ne se pose donc absolument pas...