Bonjour, je cherche à faire quelque chose mais j'ai du mal, je
m'explique.
Je voudrais qu'une classe de base baseObject implémente une méthode
statique createObject, méthode appellée en lieu et place de new lorsque
j'ai besoin de créer un objet.
Le problème c'est que je veux aussi créer des instances de classes
dérivées de baseObject. Et là ça coince, voici un extrait de mes
bidouilles :
----- WorldObject.h
class WorldObject : public BaseObject
----- Main.cpp
WorldObject* wo = (WorldObject *)BaseObject::createObject();
Le problème c'est que je suis obligé de faire un cast (forcément).
Non seulement c'est pas bien mais en plus la déclaration de fonctions
purement virtuellement dans WorldObject ne provoque pas d'erreur à la
compilation sur la ligne ci-dessus, donc c'est pire que pas bien.
L'idée d'avoir une sorte de mini-factory c'est de garder une trace des
objets qui ont été crées (en fait peut importe même, j'essaie de
comprendre).
Je pense que si j'utilisais un template je me sortirais de là, et
baseObject pourrait retourner le bon type.
Mais sans template ? Est-ce qu'il existe une solution ?
"Philippe Guglielmetti" wrote in news:3f9f51a5$0$3674$:
Philippe Kahn, un Français, a démocratisé les langages sur PC en faisant le compilateur Turbo-Pascal (1/10ème du prix des compilos Microsoft et 10x plus rapide à l'époque). Maintenant sa boite s'appelle Borland, et le produit Delphi.
La boite a été rachetée deux ou trois fois depuis et je ne crois pas que PK en fasse encore parti. En produit compilateur, ils ont également les BC++B.
-- Luc Hermitte <hermitte at free.fr> FAQ de <news:fr.comp.lang.c++> : <http://www.cmla.ens-cachan.fr/Utilisateurs/dosreis/C++/FAQ/> Dejanews : <http://groups.google.com/advanced_group_search>
"Philippe Guglielmetti" <news@dynabits.com> wrote in
news:3f9f51a5$0$3674$5402220f@news.sunrise.ch:
Philippe Kahn, un Français, a démocratisé les langages sur PC en
faisant le compilateur Turbo-Pascal (1/10ème du prix des compilos
Microsoft et 10x plus rapide à l'époque). Maintenant sa boite
s'appelle Borland, et le produit Delphi.
La boite a été rachetée deux ou trois fois depuis et je ne crois pas que
PK en fasse encore parti.
En produit compilateur, ils ont également les BC++B.
--
Luc Hermitte <hermitte at free.fr>
FAQ de <news:fr.comp.lang.c++> :
<http://www.cmla.ens-cachan.fr/Utilisateurs/dosreis/C++/FAQ/>
Dejanews : <http://groups.google.com/advanced_group_search>
"Philippe Guglielmetti" wrote in news:3f9f51a5$0$3674$:
Philippe Kahn, un Français, a démocratisé les langages sur PC en faisant le compilateur Turbo-Pascal (1/10ème du prix des compilos Microsoft et 10x plus rapide à l'époque). Maintenant sa boite s'appelle Borland, et le produit Delphi.
La boite a été rachetée deux ou trois fois depuis et je ne crois pas que PK en fasse encore parti. En produit compilateur, ils ont également les BC++B.
-- Luc Hermitte <hermitte at free.fr> FAQ de <news:fr.comp.lang.c++> : <http://www.cmla.ens-cachan.fr/Utilisateurs/dosreis/C++/FAQ/> Dejanews : <http://groups.google.com/advanced_group_search>
_M.B._
"Loïc Joly" a écrit dans le message news: bnp5ck$r2a$
_M.B._ wrote:
"Loïc Joly" a écrit dans le message news: bnmtn7$ov9$
Bin, y plein d'autres noms, qui ne m'ont pas tous l'air slaves : ...... Dos Reis .....
Les macros ca peut servir a ne pas avoir a reecrire 15fois ton code.
Ce moyen est une des solutions possibles a ton probleme. Une autre solution (qui a deja ete poste dans ce thread) etant de faire la factory avec nom explicit.
Zouplaz wrote in message news:...
theromulus - :
Une solution serait de creer ta methode statique factory dans toute les classes derivees egalement (uniquement celles qui doivent pouvoir etre instanciee).
Ha quand même je suis sceptique, tu te rends compte si j'ai 15 classes ? Dupliquer 15 fois le même code juste pour une question de cast ? Ca me semble pas trop logique...
Les macros ca peut servir a ne pas avoir a reecrire 15fois ton code.
Ce moyen est une des solutions possibles a ton probleme.
Une autre solution (qui a deja ete poste dans ce thread) etant de
faire la factory avec nom explicit.
Zouplaz <pouet@pouet.com> wrote in message news:<Xns9422F416F883BZoupla@213.228.0.33>...
theromulus - rlods@yahoo.com :
Une solution serait de creer ta methode statique factory dans toute
les classes derivees egalement (uniquement celles qui doivent pouvoir
etre instanciee).
Ha quand même je suis sceptique, tu te rends compte si j'ai 15 classes ?
Dupliquer 15 fois le même code juste pour une question de cast ? Ca me
semble pas trop logique...
Les macros ca peut servir a ne pas avoir a reecrire 15fois ton code.
Ce moyen est une des solutions possibles a ton probleme. Une autre solution (qui a deja ete poste dans ce thread) etant de faire la factory avec nom explicit.
Zouplaz wrote in message news:...
theromulus - :
Une solution serait de creer ta methode statique factory dans toute les classes derivees egalement (uniquement celles qui doivent pouvoir etre instanciee).
Ha quand même je suis sceptique, tu te rends compte si j'ai 15 classes ? Dupliquer 15 fois le même code juste pour une question de cast ? Ca me semble pas trop logique...
Møgluglu
Philippe Guglielmetti a écrit:
Philippe Kahn, un Français, a démocratisé les langages sur PC en faisant le compilateur Turbo-Pascal (1/10ème du prix des compilos Microsoft et 10x plus rapide à l'époque). Maintenant sa boite s'appelle Borland, et le produit Delphi.
?? J'ai plutôt lu qu'il avait racheté le compilateur Blue Label Pascal d'Anders Hejlsberg. Des références?
Les ricains avaient pondu un horrible macro-assembleur appellé C, Stroustrup en a fait un langage en y ajoutant les "++" de la rigueur européenne. Et si vous regardez C#, vous verrez que comme les ricains ne comprennent pas les subtilités, ils les interdisent....
Car le même Hejlsberg (qui a créé le C#) est purement américain, comme son nom l'indique?...
-- Møgluglu
Philippe Guglielmetti a écrit:
Philippe Kahn, un Français, a démocratisé
les langages sur PC en faisant le compilateur Turbo-Pascal (1/10ème
du prix des compilos Microsoft et 10x plus rapide à l'époque).
Maintenant sa boite s'appelle Borland, et le produit Delphi.
??
J'ai plutôt lu qu'il avait racheté le compilateur Blue Label Pascal
d'Anders Hejlsberg. Des références?
Les ricains avaient pondu un horrible macro-assembleur
appellé C, Stroustrup en a fait un langage en y ajoutant les "++" de
la rigueur européenne. Et si vous regardez C#, vous verrez que comme
les ricains ne comprennent pas les subtilités, ils les interdisent....
Car le même Hejlsberg (qui a créé le C#) est purement américain, comme
son nom l'indique?...
Philippe Kahn, un Français, a démocratisé les langages sur PC en faisant le compilateur Turbo-Pascal (1/10ème du prix des compilos Microsoft et 10x plus rapide à l'époque). Maintenant sa boite s'appelle Borland, et le produit Delphi.
?? J'ai plutôt lu qu'il avait racheté le compilateur Blue Label Pascal d'Anders Hejlsberg. Des références?
Les ricains avaient pondu un horrible macro-assembleur appellé C, Stroustrup en a fait un langage en y ajoutant les "++" de la rigueur européenne. Et si vous regardez C#, vous verrez que comme les ricains ne comprennent pas les subtilités, ils les interdisent....
Car le même Hejlsberg (qui a créé le C#) est purement américain, comme son nom l'indique?...
-- Møgluglu
kanze
Loïc Joly wrote in message news:<bnmtn7$ov9$...
Zouplaz wrote:
Philippe Guglielmetti - :
Si tu veux planer avec des factories g?n?r?es automatiquement par des templates, lis "Modern C++ Design" d'Alexandrescu. Et puis relis-le. Et puis lis le encore une fois. Si t'as pig? apr?s trois lectures, t'es un gourou C++
Heu... J'ai déjà assez de mal avec l'aide en ligne (section C++, hein pour pas être HS) de visual studio, alors le bouquin là... Même pas en rêve !
PS : Pourquoi tant de noms slaves dans le monde du C++ (cf le newsgroup anglophone (pas mal de noms de cette origine),
strouztruc Bjarne Stroustrup, né au Danemark, vivant aux USA.
Donc, pas slav.
, alexandrescu, Andrei Alexandrescu, né en Roumanie (?), vivant aux USA.
Donc, pas slav.
etc.))... Le C++ c'est un peu comme les échecs ?? Hein ?
Bin, y plein d'autres noms, qui ne m'ont pas tous l'air slaves : Koenig, Vandervorde, Coplien, Dos Reis, Stepanov, Sutter, Plauger, Kanze, Spicer, et plein d'autres... (1)
Surtout, je crois que la forme du nom renseigne assez peu. Stepanov est bien d'origine russe (et le nom, et la personne), mais pour les autres... (Dans la liste, il y a bien une personne dont la langue maternelle est le français. Mais ce n'est pas son nom qui le revèle.)
La seule « orientation » nationale que j'ai pu constaté, c'est une inclination vers la bibliothèque de la part des allemands : Josuttis, Kühl, Kreft et Langer. Et Sutter, mais pas Schwarz, malgré le nom.
-- James Kanze GABI Software mailto: Conseils en informatique orientée objet/ http://www.gabi-soft.fr Beratung in objektorientierter Datenverarbeitung 11 rue de Rambouillet, 78460 Chevreuse, France, +33 (0)1 30 23 45 16
Loïc Joly <loic.actarus.joly@wanadoo.fr> wrote in message
news:<bnmtn7$ov9$1@news-reader5.wanadoo.fr>...
Zouplaz wrote:
Philippe Guglielmetti - news@dynabits.com :
Si tu veux planer avec des factories g?n?r?es automatiquement par
des templates, lis "Modern C++ Design" d'Alexandrescu.
Et puis relis-le.
Et puis lis le encore une fois.
Si t'as pig? apr?s trois lectures, t'es un gourou C++
Heu... J'ai déjà assez de mal avec l'aide en ligne (section C++,
hein pour pas être HS) de visual studio, alors le bouquin là... Même
pas en rêve !
PS : Pourquoi tant de noms slaves dans le monde du C++ (cf le
newsgroup anglophone (pas mal de noms de cette origine),
strouztruc
Bjarne Stroustrup, né au Danemark, vivant aux USA.
Donc, pas slav.
, alexandrescu,
Andrei Alexandrescu, né en Roumanie (?), vivant aux USA.
Donc, pas slav.
etc.))... Le C++ c'est un peu comme les échecs ?? Hein ?
Bin, y plein d'autres noms, qui ne m'ont pas tous l'air slaves :
Koenig, Vandervorde, Coplien, Dos Reis, Stepanov, Sutter, Plauger,
Kanze, Spicer, et plein d'autres... (1)
Surtout, je crois que la forme du nom renseigne assez peu. Stepanov est
bien d'origine russe (et le nom, et la personne), mais pour les
autres... (Dans la liste, il y a bien une personne dont la langue
maternelle est le français. Mais ce n'est pas son nom qui le revèle.)
La seule « orientation » nationale que j'ai pu constaté, c'est une
inclination vers la bibliothèque de la part des allemands : Josuttis,
Kühl, Kreft et Langer. Et Sutter, mais pas Schwarz, malgré le nom.
--
James Kanze GABI Software mailto:kanze@gabi-soft.fr
Conseils en informatique orientée objet/ http://www.gabi-soft.fr
Beratung in objektorientierter Datenverarbeitung
11 rue de Rambouillet, 78460 Chevreuse, France, +33 (0)1 30 23 45 16
Si tu veux planer avec des factories g?n?r?es automatiquement par des templates, lis "Modern C++ Design" d'Alexandrescu. Et puis relis-le. Et puis lis le encore une fois. Si t'as pig? apr?s trois lectures, t'es un gourou C++
Heu... J'ai déjà assez de mal avec l'aide en ligne (section C++, hein pour pas être HS) de visual studio, alors le bouquin là... Même pas en rêve !
PS : Pourquoi tant de noms slaves dans le monde du C++ (cf le newsgroup anglophone (pas mal de noms de cette origine),
strouztruc Bjarne Stroustrup, né au Danemark, vivant aux USA.
Donc, pas slav.
, alexandrescu, Andrei Alexandrescu, né en Roumanie (?), vivant aux USA.
Donc, pas slav.
etc.))... Le C++ c'est un peu comme les échecs ?? Hein ?
Bin, y plein d'autres noms, qui ne m'ont pas tous l'air slaves : Koenig, Vandervorde, Coplien, Dos Reis, Stepanov, Sutter, Plauger, Kanze, Spicer, et plein d'autres... (1)
Surtout, je crois que la forme du nom renseigne assez peu. Stepanov est bien d'origine russe (et le nom, et la personne), mais pour les autres... (Dans la liste, il y a bien une personne dont la langue maternelle est le français. Mais ce n'est pas son nom qui le revèle.)
La seule « orientation » nationale que j'ai pu constaté, c'est une inclination vers la bibliothèque de la part des allemands : Josuttis, Kühl, Kreft et Langer. Et Sutter, mais pas Schwarz, malgré le nom.
-- James Kanze GABI Software mailto: Conseils en informatique orientée objet/ http://www.gabi-soft.fr Beratung in objektorientierter Datenverarbeitung 11 rue de Rambouillet, 78460 Chevreuse, France, +33 (0)1 30 23 45 16
kanze
Luc Hermitte wrote in message news:...
"Philippe Guglielmetti" wrote in news:3f9f51a5$0$3674$:
Philippe Kahn, un Français, a démocratisé les langages sur PC en faisant le compilateur Turbo-Pascal (1/10ème du prix des compilos Microsoft et 10x plus rapide à l'époque). Maintenant sa boite s'appelle Borland, et le produit Delphi.
La boite a été rachetée deux ou trois fois depuis et je ne crois pas que PK en fasse encore parti.
En plus, ce n'est pas lui qui a écrit Turbo-Pascal -- il l'a acheté d'une boîte danoise.
En ce qui concerne l'Europe et les langages : C++ (d'un danois) dérive de C (des américains) dérive de B (des américains) dérive de BCPL (de l'Université de Cambridge, en Angleterre, je crois). La deuxième influence importante, c'est bien Simula, des scandinaves aussi.
Et comme on a dit, Pascal, c'est d'un suisse, et Ada et Prolog des français.
-- James Kanze GABI Software mailto: Conseils en informatique orientée objet/ http://www.gabi-soft.fr Beratung in objektorientierter Datenverarbeitung 11 rue de Rambouillet, 78460 Chevreuse, France, +33 (0)1 30 23 45 16
Luc Hermitte <hermitte@free.fr.invalid> wrote in message
news:<Xns9423E9AB3C78Eisyfur@127.0.0.1>...
"Philippe Guglielmetti" <news@dynabits.com> wrote in
news:3f9f51a5$0$3674$5402220f@news.sunrise.ch:
Philippe Kahn, un Français, a démocratisé les langages sur PC en
faisant le compilateur Turbo-Pascal (1/10ème du prix des compilos
Microsoft et 10x plus rapide à l'époque). Maintenant sa boite
s'appelle Borland, et le produit Delphi.
La boite a été rachetée deux ou trois fois depuis et je ne crois pas
que PK en fasse encore parti.
En plus, ce n'est pas lui qui a écrit Turbo-Pascal -- il l'a acheté
d'une boîte danoise.
En ce qui concerne l'Europe et les langages : C++ (d'un danois) dérive
de C (des américains) dérive de B (des américains) dérive de BCPL (de
l'Université de Cambridge, en Angleterre, je crois). La deuxième
influence importante, c'est bien Simula, des scandinaves aussi.
Et comme on a dit, Pascal, c'est d'un suisse, et Ada et Prolog des
français.
--
James Kanze GABI Software mailto:kanze@gabi-soft.fr
Conseils en informatique orientée objet/ http://www.gabi-soft.fr
Beratung in objektorientierter Datenverarbeitung
11 rue de Rambouillet, 78460 Chevreuse, France, +33 (0)1 30 23 45 16
"Philippe Guglielmetti" wrote in news:3f9f51a5$0$3674$:
Philippe Kahn, un Français, a démocratisé les langages sur PC en faisant le compilateur Turbo-Pascal (1/10ème du prix des compilos Microsoft et 10x plus rapide à l'époque). Maintenant sa boite s'appelle Borland, et le produit Delphi.
La boite a été rachetée deux ou trois fois depuis et je ne crois pas que PK en fasse encore parti.
En plus, ce n'est pas lui qui a écrit Turbo-Pascal -- il l'a acheté d'une boîte danoise.
En ce qui concerne l'Europe et les langages : C++ (d'un danois) dérive de C (des américains) dérive de B (des américains) dérive de BCPL (de l'Université de Cambridge, en Angleterre, je crois). La deuxième influence importante, c'est bien Simula, des scandinaves aussi.
Et comme on a dit, Pascal, c'est d'un suisse, et Ada et Prolog des français.
-- James Kanze GABI Software mailto: Conseils en informatique orientée objet/ http://www.gabi-soft.fr Beratung in objektorientierter Datenverarbeitung 11 rue de Rambouillet, 78460 Chevreuse, France, +33 (0)1 30 23 45 16
Richard Delorme
Luc Hermitte wrote in message news:...
"Philippe Guglielmetti" wrote in news:3f9f51a5$0$3674$:
Philippe Kahn, un Français, a démocratisé les langages sur PC en faisant le compilateur Turbo-Pascal (1/10ème du prix des compilos Microsoft et 10x plus rapide à l'époque). Maintenant sa boite s'appelle Borland, et le produit Delphi.
La boite a été rachetée deux ou trois fois depuis et je ne crois pas que PK en fasse encore parti.
En plus, ce n'est pas lui qui a écrit Turbo-Pascal -- il l'a acheté d'une boîte danoise.
C'est en effet le danois Anders Hejlsberg qui a écrit Turbo-Pascal. Il a aussi dirigé la conception de Delphi (pour Borland), J++ et C# (pour Microsoft).
-- Richard
Luc Hermitte <hermitte@free.fr.invalid> wrote in message
news:<Xns9423E9AB3C78Eisyfur@127.0.0.1>...
"Philippe Guglielmetti" <news@dynabits.com> wrote in
news:3f9f51a5$0$3674$5402220f@news.sunrise.ch:
Philippe Kahn, un Français, a démocratisé les langages sur PC en
faisant le compilateur Turbo-Pascal (1/10ème du prix des compilos
Microsoft et 10x plus rapide à l'époque). Maintenant sa boite
s'appelle Borland, et le produit Delphi.
La boite a été rachetée deux ou trois fois depuis et je ne crois pas
que PK en fasse encore parti.
En plus, ce n'est pas lui qui a écrit Turbo-Pascal -- il l'a acheté
d'une boîte danoise.
C'est en effet le danois Anders Hejlsberg qui a écrit Turbo-Pascal. Il a
aussi dirigé la conception de Delphi (pour Borland), J++ et C# (pour
Microsoft).
"Philippe Guglielmetti" wrote in news:3f9f51a5$0$3674$:
Philippe Kahn, un Français, a démocratisé les langages sur PC en faisant le compilateur Turbo-Pascal (1/10ème du prix des compilos Microsoft et 10x plus rapide à l'époque). Maintenant sa boite s'appelle Borland, et le produit Delphi.
La boite a été rachetée deux ou trois fois depuis et je ne crois pas que PK en fasse encore parti.
En plus, ce n'est pas lui qui a écrit Turbo-Pascal -- il l'a acheté d'une boîte danoise.
C'est en effet le danois Anders Hejlsberg qui a écrit Turbo-Pascal. Il a aussi dirigé la conception de Delphi (pour Borland), J++ et C# (pour Microsoft).