Je vous présente ici un petit souci que j'ai eu au travail.
Mettons que nous ayons la situation suivante:
class Base
{
public: virtual ~Base() {}
};
class Enfant1 : public Base
{
};
class Enfant2 : public Base
{
};
J'avais écrit une fonction du type:
void FreeBase ( Base *&p )
{
if ( NULL != p )
{
/* un traitement sur p ici */
....
/* fin du traitement */
delete p;
p = NULL;
}
}
Ainsi j'ai essayé d'utiliser:
Enfant1 *e1 = new Enfant1(...);
Enfant2 *e2 = new Enfant2(...);
...
FreeBase ( e1 );
FreeBase ( e2 );
malheureusement ça ne compile pas. L'erreur est quelque chose comme:
conversion impossible de Enfant1 * vers Base *&.
Est-ce que c'est vraiment impossible?
Suis-je obligé d'utiliser une méthode template dans ce cas là? (ce qui
m'est impossible, les templates m'étant interdits)
Je ne suis pas satisfait par le copier/coller que j'utilise pour l'instant.
| Fabien LE LEZ wrote in message | news:... | > On Thu, 31 Jul 2003 18:47:05 +0200, "Stephane SOPPERA" | > wrote: | | > >Non, je travaille dans une grosse boite qui produit un logiciel | > >multi-plateformes et qui a décidé de banir les templates. | | > Faudrait penser à proposer à celui qui a décidé ça de bannir également | > l'usage de la lettre "a" dans les noms de variables... | | Il est probablem qu'ils ont banni l'utilisation de la lettre 'à'. | | On bannit ce qui n'est pas portable dans la pratique.
C'est une règle qui a des exceptions, n'est-ce pas ? La proposition de Fabien fait partie de ces exceptions là, par définition.
-- Gaby
kanze@gabi-soft.fr writes:
| Fabien LE LEZ <gramster@gramster.com> wrote in message
| news:<nkiiivolkn1v2ovdjkv471pphk6p04b1jd@4ax.com>...
| > On Thu, 31 Jul 2003 18:47:05 +0200, "Stephane SOPPERA"
| > <soppers3@cti.ecp.fr> wrote:
|
| > >Non, je travaille dans une grosse boite qui produit un logiciel
| > >multi-plateformes et qui a décidé de banir les templates.
|
| > Faudrait penser à proposer à celui qui a décidé ça de bannir également
| > l'usage de la lettre "a" dans les noms de variables...
|
| Il est probablem qu'ils ont banni l'utilisation de la lettre 'à'.
|
| On bannit ce qui n'est pas portable dans la pratique.
C'est une règle qui a des exceptions, n'est-ce pas ?
La proposition de Fabien fait partie de ces exceptions là, par définition.
| Fabien LE LEZ wrote in message | news:... | > On Thu, 31 Jul 2003 18:47:05 +0200, "Stephane SOPPERA" | > wrote: | | > >Non, je travaille dans une grosse boite qui produit un logiciel | > >multi-plateformes et qui a décidé de banir les templates. | | > Faudrait penser à proposer à celui qui a décidé ça de bannir également | > l'usage de la lettre "a" dans les noms de variables... | | Il est probablem qu'ils ont banni l'utilisation de la lettre 'à'. | | On bannit ce qui n'est pas portable dans la pratique.
C'est une règle qui a des exceptions, n'est-ce pas ? La proposition de Fabien fait partie de ces exceptions là, par définition.
-- Gaby
Fabien LE LEZ
On 1 Aug 2003 06:22:10 -0700, wrote:
Il est probablem qu'ils ont banni l'utilisation de la lettre 'à'.
AMHA ils ne se sont même pas posé la question ;-)
-- Tout sur fr.* (FAQ, etc.) : http://www.usenet-fr.net/fur/ et http://www.aminautes.org/forums/serveurs/tablefr.html Archives : http://groups.google.com/advanced_group_search http://www.usenet-fr.net/fur/usenet/repondre-sur-usenet.html
On 1 Aug 2003 06:22:10 -0700, kanze@gabi-soft.fr wrote:
Il est probablem qu'ils ont banni l'utilisation de la lettre 'à'.
AMHA ils ne se sont même pas posé la question ;-)
--
Tout sur fr.* (FAQ, etc.) : http://www.usenet-fr.net/fur/
et http://www.aminautes.org/forums/serveurs/tablefr.html
Archives : http://groups.google.com/advanced_group_search
http://www.usenet-fr.net/fur/usenet/repondre-sur-usenet.html
Il est probablem qu'ils ont banni l'utilisation de la lettre 'à'.
AMHA ils ne se sont même pas posé la question ;-)
-- Tout sur fr.* (FAQ, etc.) : http://www.usenet-fr.net/fur/ et http://www.aminautes.org/forums/serveurs/tablefr.html Archives : http://groups.google.com/advanced_group_search http://www.usenet-fr.net/fur/usenet/repondre-sur-usenet.html
Fabien LE LEZ
On 1 Aug 2003 06:22:10 -0700, wrote:
C'est la solution la plus simple.
Mais c'est AMHA une solution qui soit est très vieille est n'a pas été remise en cause pour cause d'immobilisme, soit c'est une solution peu réfléchie. De toutes façons, forcer une telle règle sans en expliquer les raisons est une pratique qui montre un certains mépris pour ceux qui doivent l'appliquer.
-- Tout sur fr.* (FAQ, etc.) : http://www.usenet-fr.net/fur/ et http://www.aminautes.org/forums/serveurs/tablefr.html Archives : http://groups.google.com/advanced_group_search http://www.usenet-fr.net/fur/usenet/repondre-sur-usenet.html
On 1 Aug 2003 06:22:10 -0700, kanze@gabi-soft.fr wrote:
C'est la solution la plus simple.
Mais c'est AMHA une solution qui soit est très vieille est n'a pas été
remise en cause pour cause d'immobilisme, soit c'est une solution peu
réfléchie.
De toutes façons, forcer une telle règle sans en expliquer les raisons
est une pratique qui montre un certains mépris pour ceux qui doivent
l'appliquer.
--
Tout sur fr.* (FAQ, etc.) : http://www.usenet-fr.net/fur/
et http://www.aminautes.org/forums/serveurs/tablefr.html
Archives : http://groups.google.com/advanced_group_search
http://www.usenet-fr.net/fur/usenet/repondre-sur-usenet.html
Mais c'est AMHA une solution qui soit est très vieille est n'a pas été remise en cause pour cause d'immobilisme, soit c'est une solution peu réfléchie. De toutes façons, forcer une telle règle sans en expliquer les raisons est une pratique qui montre un certains mépris pour ceux qui doivent l'appliquer.
-- Tout sur fr.* (FAQ, etc.) : http://www.usenet-fr.net/fur/ et http://www.aminautes.org/forums/serveurs/tablefr.html Archives : http://groups.google.com/advanced_group_search http://www.usenet-fr.net/fur/usenet/repondre-sur-usenet.html
Stephane SOPPERA
On Thu, 31 Jul 2003 19:46:59 +0200, Stephane SOPPERA wrote:
| Non, je travaille dans une grosse boite qui produit un logiciel | multi-plateformes et qui a décidé de banir les templates.
est-ce une décision technique ? Politique ?
En fait je n'ai pas encore pu le savoir. Et je n'ai pas encore rencontré de gens qui savaient ;-)
J'ai relu les règles de codages. Comme dans mon souvenir elles étaient très succintes à propos des templates. Néanmoins, la seule phrase d'explication dit que leur support parmis les différents compilateur est alléatoire et que c'est pour celà qu'ils sont banis.
Donc il s'agirait d'une décision technique, même si elle est peu argumentée.
On Thu, 31 Jul 2003 19:46:59 +0200, Stephane SOPPERA wrote:
| Non, je travaille dans une grosse boite qui produit un logiciel
| multi-plateformes et qui a décidé de banir les templates.
est-ce une décision technique ? Politique ?
En fait je n'ai pas encore pu le savoir. Et je n'ai pas encore
rencontré de gens qui savaient ;-)
J'ai relu les règles de codages.
Comme dans mon souvenir elles étaient très succintes à propos des
templates. Néanmoins, la seule phrase d'explication dit que leur support
parmis les différents compilateur est alléatoire et que c'est pour celà
qu'ils sont banis.
Donc il s'agirait d'une décision technique, même si elle est peu
argumentée.
On Thu, 31 Jul 2003 19:46:59 +0200, Stephane SOPPERA wrote:
| Non, je travaille dans une grosse boite qui produit un logiciel | multi-plateformes et qui a décidé de banir les templates.
est-ce une décision technique ? Politique ?
En fait je n'ai pas encore pu le savoir. Et je n'ai pas encore rencontré de gens qui savaient ;-)
J'ai relu les règles de codages. Comme dans mon souvenir elles étaient très succintes à propos des templates. Néanmoins, la seule phrase d'explication dit que leur support parmis les différents compilateur est alléatoire et que c'est pour celà qu'ils sont banis.
Donc il s'agirait d'une décision technique, même si elle est peu argumentée.
De toutes façons, forcer une telle règle sans en expliquer les raisons est une pratique qui montre un certains mépris pour ceux qui doivent l'appliquer.
Je n'irais pas jusqu'au mépris. C'est juste un problème de communication, qui figure en général en seconde position dans les problèmes majeurs des entreprises (la première étant la trésorerie).
Chris
"Fabien LE LEZ" <gramster@gramster.com> a écrit dans le message de
news:bmvkivgr1pq5l2s498ae81ucqiie86rifa@4ax.com...
De toutes façons, forcer une telle règle sans en expliquer les raisons
est une pratique qui montre un certains mépris pour ceux qui doivent
l'appliquer.
Je n'irais pas jusqu'au mépris. C'est juste un problème de communication,
qui figure en général en seconde position dans les problèmes majeurs des
entreprises (la première étant la trésorerie).
De toutes façons, forcer une telle règle sans en expliquer les raisons est une pratique qui montre un certains mépris pour ceux qui doivent l'appliquer.
Je n'irais pas jusqu'au mépris. C'est juste un problème de communication, qui figure en général en seconde position dans les problèmes majeurs des entreprises (la première étant la trésorerie).
Chris
Fabien LE LEZ
On Fri, 1 Aug 2003 18:35:11 +0200, "Christophe Lephay" wrote:
roblème de communication, qui figure en général en seconde position dans les problèmes majeurs des entreprises (la première étant la trésorerie).
Je confirme. Quoique pour une entreprise comme mon employeur (7 employés + un patron), la trésorerie est un problème légèrement devant le problème de communication ;-/ Le troisième problème (pas très loin derrière) est le manque de prises pour brancher les PC.
-- Tout sur fr.* (FAQ, etc.) : http://www.usenet-fr.net/fur/ et http://www.aminautes.org/forums/serveurs/tablefr.html Archives : http://groups.google.com/advanced_group_search http://www.usenet-fr.net/fur/usenet/repondre-sur-usenet.html
On Fri, 1 Aug 2003 18:35:11 +0200, "Christophe Lephay"
<christophe-lephay@wanadoo.fr> wrote:
roblème de communication,
qui figure en général en seconde position dans les problèmes majeurs des
entreprises (la première étant la trésorerie).
Je confirme. Quoique pour une entreprise comme mon employeur (7
employés + un patron), la trésorerie est un problème légèrement devant
le problème de communication ;-/
Le troisième problème (pas très loin derrière) est le manque de prises
pour brancher les PC.
--
Tout sur fr.* (FAQ, etc.) : http://www.usenet-fr.net/fur/
et http://www.aminautes.org/forums/serveurs/tablefr.html
Archives : http://groups.google.com/advanced_group_search
http://www.usenet-fr.net/fur/usenet/repondre-sur-usenet.html
On Fri, 1 Aug 2003 18:35:11 +0200, "Christophe Lephay" wrote:
roblème de communication, qui figure en général en seconde position dans les problèmes majeurs des entreprises (la première étant la trésorerie).
Je confirme. Quoique pour une entreprise comme mon employeur (7 employés + un patron), la trésorerie est un problème légèrement devant le problème de communication ;-/ Le troisième problème (pas très loin derrière) est le manque de prises pour brancher les PC.
-- Tout sur fr.* (FAQ, etc.) : http://www.usenet-fr.net/fur/ et http://www.aminautes.org/forums/serveurs/tablefr.html Archives : http://groups.google.com/advanced_group_search http://www.usenet-fr.net/fur/usenet/repondre-sur-usenet.html
Fabien LE LEZ
On Fri, 01 Aug 2003 18:21:01 +0200, "Stephane SOPPERA" wrote:
Parcque je préfère éviter à tout prix les macros
Pourquoi ?
Pour éviter tout problème de conflit de noms
Ce problème est quand même très peu important dans le cas qui nous occupe :
1/ Il ne peut pas y avoir de conflit avec autre chose qu'une autre macro, à cause du préfixe "MACRO_"
2/ Il y a un contrôle de type : si cette macro est appelée avec un paramètre qui n'est pas un "Base*" (ou un dérivé), ça ne compile pas.
Ça réduit quand même grandement les possibilités de problèmes.
Je dirais que les macros sont souvent une mauvaise solution, tandis que de la copie de code est quasiment tout le temps la pire des solutions.
et aussi par habitude.
La pire des raisons. Fais gaffe, si jamais ton entreprise déménage, tu ne pourras plus y aller à cause de ton habitude d'aller dans l'ancien bâtiment...
Edicter une règle absolue du type "Il ne faut pas utiliser les macros", ce n'est plus de la programmation, c'est de la religion.
-- Tout sur fr.* (FAQ, etc.) : http://www.usenet-fr.net/fur/ et http://www.aminautes.org/forums/serveurs/tablefr.html Archives : http://groups.google.com/advanced_group_search http://www.usenet-fr.net/fur/usenet/repondre-sur-usenet.html
On Fri, 01 Aug 2003 18:21:01 +0200, "Stephane SOPPERA"
<soppers3@cti.ecp.fr> wrote:
Parcque je préfère éviter à tout prix les macros
Pourquoi ?
Pour éviter tout problème de conflit de noms
Ce problème est quand même très peu important dans le cas qui nous
occupe :
1/ Il ne peut pas y avoir de conflit avec autre chose qu'une autre
macro, à cause du préfixe "MACRO_"
2/ Il y a un contrôle de type : si cette macro est appelée avec un
paramètre qui n'est pas un "Base*" (ou un dérivé), ça ne compile pas.
Ça réduit quand même grandement les possibilités de problèmes.
Je dirais que les macros sont souvent une mauvaise solution, tandis
que de la copie de code est quasiment tout le temps la pire des
solutions.
et aussi par habitude.
La pire des raisons. Fais gaffe, si jamais ton entreprise déménage, tu
ne pourras plus y aller à cause de ton habitude d'aller dans l'ancien
bâtiment...
Edicter une règle absolue du type "Il ne faut pas utiliser les
macros", ce n'est plus de la programmation, c'est de la religion.
--
Tout sur fr.* (FAQ, etc.) : http://www.usenet-fr.net/fur/
et http://www.aminautes.org/forums/serveurs/tablefr.html
Archives : http://groups.google.com/advanced_group_search
http://www.usenet-fr.net/fur/usenet/repondre-sur-usenet.html
1/ Il ne peut pas y avoir de conflit avec autre chose qu'une autre macro, à cause du préfixe "MACRO_"
2/ Il y a un contrôle de type : si cette macro est appelée avec un paramètre qui n'est pas un "Base*" (ou un dérivé), ça ne compile pas.
Ça réduit quand même grandement les possibilités de problèmes.
Je dirais que les macros sont souvent une mauvaise solution, tandis que de la copie de code est quasiment tout le temps la pire des solutions.
et aussi par habitude.
La pire des raisons. Fais gaffe, si jamais ton entreprise déménage, tu ne pourras plus y aller à cause de ton habitude d'aller dans l'ancien bâtiment...
Edicter une règle absolue du type "Il ne faut pas utiliser les macros", ce n'est plus de la programmation, c'est de la religion.
-- Tout sur fr.* (FAQ, etc.) : http://www.usenet-fr.net/fur/ et http://www.aminautes.org/forums/serveurs/tablefr.html Archives : http://groups.google.com/advanced_group_search http://www.usenet-fr.net/fur/usenet/repondre-sur-usenet.html