Bonsoir,
Je réflechis actuellement sur le moyen élegant de solutionner le problème
suivant :
J'ai un objet externe à un pc à commander et une interface propose à
l'utilisateur un ensemble de commande à lui envoyer.
Les commandes définies de manières précises et une classe commande permet de
donner le formattage d'une commande.
En clair, pour chaque commande que l'utilisateur doit envoyer, une instance
de commande connait le formattage précis de la commande qui sera
effectivement envoyé et son operator() recoit le bon nombre d'arguments et
permet ainsi d'envoyer la commande quand l'utilisateur le veut.
Pour faire ceci, j'avais pensé à un map qui permettrait au programmeur de
l'interface d'envoyer directement la chaine de la commande avec les
arguements du genre [ Le but étant de simplifier l'interface et
l'utilisation de ce module qui sera en fait une dll ] :
Seul problème, je n'ai pas trouvé (j'ai cherché dans TC++PL) de moyen de
construire un map de la même manière qu'un tableau à la C, et il me semble
avoir lu il y a quelque temps que ce n'est pas possible.
J'aurai voulu faire un truc du genre :
Ma question est alors, d'après vous y-a-t-il un moyen élegant de résoudre ce
problème ? Je pensais par exemple à une classe englobant un std::map et me
permettant de le construire comme je veux, mais cette solution n'est-elle
pas trop lourde ? Y-a-t-il plus "C++" ? Je n'ai pas la prétention de
recoder un map plus efficace que celui de la STL, et à ma connaissance les
classes de la STL ne sont pas dérivables, il est donc je pense préférable
d'utiliser map.
En fait si je pose cette question c'est surtout que je viens du C et que je
trouve que le code que je fais en C++ est d'une lourdeur extreme.
Merci d'avance de vos réponses et j'espère avoir été clair.
Anthony
--
"I should have seen it would be this way
I should have known from the start what she's up to
When you have loved and you've lost someone
You know what it feels like to lose" -- The Rasmus
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
kanze
Anthony Fleury wrote in message news:<4042628f$0$2470$...
Je réflechis actuellement sur le moyen élegant de solutionner le problème suivant :
J'ai un objet externe à un pc à commander et une interface propose à l'utilisateur un ensemble de commande à lui envoyer. Les commandes définies de manières précises et une classe commande permet de donner le formattage d'une commande. En clair, pour chaque commande que l'utilisateur doit envoyer, une instance de commande connait le formattage précis de la commande qui sera effectivement envoyé et son operator() recoit le bon nombre d'arguments et permet ainsi d'envoyer la commande quand l'utilisateur le veut.
Pour faire ceci, j'avais pensé à un map qui permettrait au programmeur de l'interface d'envoyer directement la chaine de la commande avec les arguements du genre [ Le but étant de simplifier l'interface et l'utilisation de ce module qui sera en fait une dll ] :
C'est toujours le même nombre et les mêmes types de paramètre, j'espère.
Seul problème, je n'ai pas trouvé (j'ai cherché dans TC++PL) de moyen de construire un map de la même manière qu'un tableau à la C, et il me semble avoir lu il y a quelque temps que ce n'est pas possible. J'aurai voulu faire un truc du genre :
static MapInit const init [] { { "ma commande", "ma première paramètre", ... } , // ... } ;
Enfin, la plupart du temps, Commande est une classe de base abstraite, j'ai plutôt un map des chaînes vers des Commande*, et l'initialisation ressemble plutôt :
static MapInit const init[] { { "ma commande", new CommandeConcrete1( ... ) } , // ... } ;
Enfin, par rapport à l'initialisation pûrement à la C, il ne faut pas oublier l'aspect de l'ordre de l'initialisation, qui pourrait y jouer une rôle.
-- 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
Anthony Fleury <fleury_anthony@hotmail_.com> wrote in message
news:<4042628f$0$2470$626a14ce@news.free.fr>...
Je réflechis actuellement sur le moyen élegant de solutionner le
problème suivant :
J'ai un objet externe à un pc à commander et une interface propose à
l'utilisateur un ensemble de commande à lui envoyer. Les commandes
définies de manières précises et une classe commande permet de donner
le formattage d'une commande. En clair, pour chaque commande que
l'utilisateur doit envoyer, une instance de commande connait le
formattage précis de la commande qui sera effectivement envoyé et son
operator() recoit le bon nombre d'arguments et permet ainsi d'envoyer
la commande quand l'utilisateur le veut.
Pour faire ceci, j'avais pensé à un map qui permettrait au programmeur
de l'interface d'envoyer directement la chaine de la commande avec les
arguements du genre [ Le but étant de simplifier l'interface et
l'utilisation de ce module qui sera en fait une dll ] :
C'est toujours le même nombre et les mêmes types de paramètre, j'espère.
Seul problème, je n'ai pas trouvé (j'ai cherché dans TC++PL) de moyen
de construire un map de la même manière qu'un tableau à la C, et il me
semble avoir lu il y a quelque temps que ce n'est pas possible.
J'aurai voulu faire un truc du genre :
static MapInit const init [] {
{ "ma commande", "ma première paramètre", ... } ,
// ...
} ;
Enfin, la plupart du temps, Commande est une classe de base abstraite,
j'ai plutôt un map des chaînes vers des Commande*, et l'initialisation
ressemble plutôt :
static MapInit const init[]
{
{ "ma commande", new CommandeConcrete1( ... ) } ,
// ...
} ;
Enfin, par rapport à l'initialisation pûrement à la C, il ne faut pas
oublier l'aspect de l'ordre de l'initialisation, qui pourrait y jouer
une rôle.
--
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
Anthony Fleury wrote in message news:<4042628f$0$2470$...
Je réflechis actuellement sur le moyen élegant de solutionner le problème suivant :
J'ai un objet externe à un pc à commander et une interface propose à l'utilisateur un ensemble de commande à lui envoyer. Les commandes définies de manières précises et une classe commande permet de donner le formattage d'une commande. En clair, pour chaque commande que l'utilisateur doit envoyer, une instance de commande connait le formattage précis de la commande qui sera effectivement envoyé et son operator() recoit le bon nombre d'arguments et permet ainsi d'envoyer la commande quand l'utilisateur le veut.
Pour faire ceci, j'avais pensé à un map qui permettrait au programmeur de l'interface d'envoyer directement la chaine de la commande avec les arguements du genre [ Le but étant de simplifier l'interface et l'utilisation de ce module qui sera en fait une dll ] :
C'est toujours le même nombre et les mêmes types de paramètre, j'espère.
Seul problème, je n'ai pas trouvé (j'ai cherché dans TC++PL) de moyen de construire un map de la même manière qu'un tableau à la C, et il me semble avoir lu il y a quelque temps que ce n'est pas possible. J'aurai voulu faire un truc du genre :
static MapInit const init [] { { "ma commande", "ma première paramètre", ... } , // ... } ;
Enfin, la plupart du temps, Commande est une classe de base abstraite, j'ai plutôt un map des chaînes vers des Commande*, et l'initialisation ressemble plutôt :
static MapInit const init[] { { "ma commande", new CommandeConcrete1( ... ) } , // ... } ;
Enfin, par rapport à l'initialisation pûrement à la C, il ne faut pas oublier l'aspect de l'ordre de l'initialisation, qui pourrait y jouer une rôle.
-- 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
Anthony Fleury
wrote:
[...]
Merci beaucoup pour toutes ces explications interessantes.
Anthony -- "I should have seen it would be this way I should have known from the start what she's up to When you have loved and you've lost someone You know what it feels like to lose" -- The Rasmus
kanze@gabi-soft.fr wrote:
[...]
Merci beaucoup pour toutes ces explications interessantes.
Anthony
--
"I should have seen it would be this way
I should have known from the start what she's up to
When you have loved and you've lost someone
You know what it feels like to lose" -- The Rasmus
Merci beaucoup pour toutes ces explications interessantes.
Anthony -- "I should have seen it would be this way I should have known from the start what she's up to When you have loved and you've lost someone You know what it feels like to lose" -- The Rasmus