Bon, ben tant pis pour l'OP, mais je crois que je vais continuer à
faire comme je le sens, sans me préoccuper de savoir si c'est de la
POO ou pas ;-)
Bon, ben tant pis pour l'OP, mais je crois que je vais continuer à
faire comme je le sens, sans me préoccuper de savoir si c'est de la
POO ou pas ;-)
Bon, ben tant pis pour l'OP, mais je crois que je vais continuer à
faire comme je le sens, sans me préoccuper de savoir si c'est de la
POO ou pas ;-)
Fabien LE LEZ writes:On 22 Jan 2004 02:02:44 -0800, wrote:Je dirais même que l'apport le plus important, ce n'est pas l'OO, mais
l'encapsulation -- la partie privée d'une classe et les fonctions
membres.
Euh... Cela ne fait-il pas partie de l'OO ?
Non. (De même la généricité n'en fait pas partie.)
Fabien LE LEZ <gramster@gramster.com> writes:
On 22 Jan 2004 02:02:44 -0800, kanze@gabi-soft.fr wrote:
Je dirais même que l'apport le plus important, ce n'est pas l'OO, mais
l'encapsulation -- la partie privée d'une classe et les fonctions
membres.
Euh... Cela ne fait-il pas partie de l'OO ?
Non. (De même la généricité n'en fait pas partie.)
Fabien LE LEZ writes:On 22 Jan 2004 02:02:44 -0800, wrote:Je dirais même que l'apport le plus important, ce n'est pas l'OO, mais
l'encapsulation -- la partie privée d'une classe et les fonctions
membres.
Euh... Cela ne fait-il pas partie de l'OO ?
Non. (De même la généricité n'en fait pas partie.)
Jean-Marc Bourguet wrote:Fabien LE LEZ writes:On 22 Jan 2004 02:02:44 -0800, wrote:Je dirais même que l'apport le plus important, ce n'est pas l'OO, mais
l'encapsulation -- la partie privée d'une classe et les fonctions
membres.
Euh... Cela ne fait-il pas partie de l'OO ?
Non. (De même la généricité n'en fait pas partie.)
C'est à dire que pour toi, la généricité est dynamique et que tu
ne fait pas une distinction polymorphisme dynamique (héritage) et
polymorphisme statique (généricité) ?
Marc Boyer
PS: fu2 fco
(fclc++ conserve)
Jean-Marc Bourguet wrote:
Fabien LE LEZ <gramster@gramster.com> writes:
On 22 Jan 2004 02:02:44 -0800, kanze@gabi-soft.fr wrote:
Je dirais même que l'apport le plus important, ce n'est pas l'OO, mais
l'encapsulation -- la partie privée d'une classe et les fonctions
membres.
Euh... Cela ne fait-il pas partie de l'OO ?
Non. (De même la généricité n'en fait pas partie.)
C'est à dire que pour toi, la généricité est dynamique et que tu
ne fait pas une distinction polymorphisme dynamique (héritage) et
polymorphisme statique (généricité) ?
Marc Boyer
PS: fu2 fco
(fclc++ conserve)
Jean-Marc Bourguet wrote:Fabien LE LEZ writes:On 22 Jan 2004 02:02:44 -0800, wrote:Je dirais même que l'apport le plus important, ce n'est pas l'OO, mais
l'encapsulation -- la partie privée d'une classe et les fonctions
membres.
Euh... Cela ne fait-il pas partie de l'OO ?
Non. (De même la généricité n'en fait pas partie.)
C'est à dire que pour toi, la généricité est dynamique et que tu
ne fait pas une distinction polymorphisme dynamique (héritage) et
polymorphisme statique (généricité) ?
Marc Boyer
PS: fu2 fco
(fclc++ conserve)
Marc Boyer writes:C'est à dire que pour toi, la généricité est dynamique et que tu
ne fait pas une distinction polymorphisme dynamique (héritage) et
polymorphisme statique (généricité) ?
L'aspect statique ou dynamique me semble complement independant. Je
peux concervoir un langage ou tout est dynamique ou tout statique
(mais bien plus contraint). En ce qui concerne le polymorphisme de
substitution -- l'heritage n'est qu'un moyen de l'obtenir -- la
version C++ me semble parmis les plus statiques possibles sans
contraintes redihibitives.
La difference entre polymorphisme de substitution et polymorphisme
parametrique est que les operations sur les parametres sont implicites
dans le premier (elles sont deduites du type) et explicite dans le
second.
La situation en C++ est compliquee parce que les templates ont aussi
un aspect substitutionnel -- et un aspect ad hoc d'ailleurs -- qui
sert souvent: on ne passe pas souvent les operations possibles
explicitement (et les traits sont souvent utilises quand on le fait
pour retrouver de l'implicite).
Marc Boyer <Marc.Boyer@enseeiht.yahoo.fr.invalid> writes:
C'est à dire que pour toi, la généricité est dynamique et que tu
ne fait pas une distinction polymorphisme dynamique (héritage) et
polymorphisme statique (généricité) ?
L'aspect statique ou dynamique me semble complement independant. Je
peux concervoir un langage ou tout est dynamique ou tout statique
(mais bien plus contraint). En ce qui concerne le polymorphisme de
substitution -- l'heritage n'est qu'un moyen de l'obtenir -- la
version C++ me semble parmis les plus statiques possibles sans
contraintes redihibitives.
La difference entre polymorphisme de substitution et polymorphisme
parametrique est que les operations sur les parametres sont implicites
dans le premier (elles sont deduites du type) et explicite dans le
second.
La situation en C++ est compliquee parce que les templates ont aussi
un aspect substitutionnel -- et un aspect ad hoc d'ailleurs -- qui
sert souvent: on ne passe pas souvent les operations possibles
explicitement (et les traits sont souvent utilises quand on le fait
pour retrouver de l'implicite).
Marc Boyer writes:C'est à dire que pour toi, la généricité est dynamique et que tu
ne fait pas une distinction polymorphisme dynamique (héritage) et
polymorphisme statique (généricité) ?
L'aspect statique ou dynamique me semble complement independant. Je
peux concervoir un langage ou tout est dynamique ou tout statique
(mais bien plus contraint). En ce qui concerne le polymorphisme de
substitution -- l'heritage n'est qu'un moyen de l'obtenir -- la
version C++ me semble parmis les plus statiques possibles sans
contraintes redihibitives.
La difference entre polymorphisme de substitution et polymorphisme
parametrique est que les operations sur les parametres sont implicites
dans le premier (elles sont deduites du type) et explicite dans le
second.
La situation en C++ est compliquee parce que les templates ont aussi
un aspect substitutionnel -- et un aspect ad hoc d'ailleurs -- qui
sert souvent: on ne passe pas souvent les operations possibles
explicitement (et les traits sont souvent utilises quand on le fait
pour retrouver de l'implicite).
Bonjour,
Après un rapide sondage pour ma culture personnelle sur fro, il apparait que
les spécialistes de l'objet rejettent le langage C++ dont les concepts leur
paraissent aberrants. En gros, il affirment que C++ n'est qu'un patch du
langage C afin de le rendre bancalement OO.
Cela m'embête un peu car je connais bien le langage C et il me semble que
l'apprentissage du C++ aurait été de ce fait facilité.
Je tiens absolument à apprendre un langage objet, mais je désire aussi que
celui ci me permette d'appréhender de façon claire et exhaustive l'ensemble
des concepts objet.
Eux me conseillent plutot Smalltalk ou Python, mais cela s'éloigne de ce que
je connais déjà et ne semble pas hyper répandu.
Bonjour,
Après un rapide sondage pour ma culture personnelle sur fro, il apparait que
les spécialistes de l'objet rejettent le langage C++ dont les concepts leur
paraissent aberrants. En gros, il affirment que C++ n'est qu'un patch du
langage C afin de le rendre bancalement OO.
Cela m'embête un peu car je connais bien le langage C et il me semble que
l'apprentissage du C++ aurait été de ce fait facilité.
Je tiens absolument à apprendre un langage objet, mais je désire aussi que
celui ci me permette d'appréhender de façon claire et exhaustive l'ensemble
des concepts objet.
Eux me conseillent plutot Smalltalk ou Python, mais cela s'éloigne de ce que
je connais déjà et ne semble pas hyper répandu.
Bonjour,
Après un rapide sondage pour ma culture personnelle sur fro, il apparait que
les spécialistes de l'objet rejettent le langage C++ dont les concepts leur
paraissent aberrants. En gros, il affirment que C++ n'est qu'un patch du
langage C afin de le rendre bancalement OO.
Cela m'embête un peu car je connais bien le langage C et il me semble que
l'apprentissage du C++ aurait été de ce fait facilité.
Je tiens absolument à apprendre un langage objet, mais je désire aussi que
celui ci me permette d'appréhender de façon claire et exhaustive l'ensemble
des concepts objet.
Eux me conseillent plutot Smalltalk ou Python, mais cela s'éloigne de ce que
je connais déjà et ne semble pas hyper répandu.
Jean-Marc Bourguet wrote:Marc Boyer writes:C'est à dire que pour toi, la généricité est dynamique et que tu
ne fait pas une distinction polymorphisme dynamique (héritage) et
polymorphisme statique (généricité) ?
L'aspect statique ou dynamique me semble complement independant. Je
peux concervoir un langage ou tout est dynamique ou tout statique
(mais bien plus contraint). En ce qui concerne le polymorphisme de
substitution -- l'heritage n'est qu'un moyen de l'obtenir -- la
version C++ me semble parmis les plus statiques possibles sans
contraintes redihibitives.
C'est à dire que tu ne vois pas la généricité C++ comme
un moyen de faire du polymorphisme de substitution.La difference entre polymorphisme de substitution et polymorphisme
parametrique est que les operations sur les parametres sont implicites
dans le premier (elles sont deduites du type) et explicite dans le
second.
Je suis pas bien sur de comprendre ton argumentation.
Pour moi, l'héritage C++/Java/Eiffel fait un polymorphisme
de substitution dans lequel les parametres sont explicites,
puisque donné par le typage que le programmeur doit expliciter.
class X { void foo(); };
class XX : public X {};
class Y { void foo(); };
Si j'écris une fonction qui a besoin que son argument
possède une méthode foo, avec l'héritage, je dois donner
un type (*X ou &X) et seules les classes descendant
explicitement de X pourront être paramêtre.
Alors qu'avec un template, ce sera implicite.
Non ?La situation en C++ est compliquee parce que les templates ont aussi
un aspect substitutionnel -- et un aspect ad hoc d'ailleurs -- qui
sert souvent: on ne passe pas souvent les operations possibles
explicitement (et les traits sont souvent utilises quand on le fait
pour retrouver de l'implicite).
Oui, pour moi, il y a deux polymorphismes en C++, un dynamique
(mais qui possède des aspects statiques), l'héritage,
et un statique, les templates.
Dans cette approche, SmallTalk est purement dynamique.
Jean-Marc Bourguet wrote:
Marc Boyer <Marc.Boyer@enseeiht.yahoo.fr.invalid> writes:
C'est à dire que pour toi, la généricité est dynamique et que tu
ne fait pas une distinction polymorphisme dynamique (héritage) et
polymorphisme statique (généricité) ?
L'aspect statique ou dynamique me semble complement independant. Je
peux concervoir un langage ou tout est dynamique ou tout statique
(mais bien plus contraint). En ce qui concerne le polymorphisme de
substitution -- l'heritage n'est qu'un moyen de l'obtenir -- la
version C++ me semble parmis les plus statiques possibles sans
contraintes redihibitives.
C'est à dire que tu ne vois pas la généricité C++ comme
un moyen de faire du polymorphisme de substitution.
La difference entre polymorphisme de substitution et polymorphisme
parametrique est que les operations sur les parametres sont implicites
dans le premier (elles sont deduites du type) et explicite dans le
second.
Je suis pas bien sur de comprendre ton argumentation.
Pour moi, l'héritage C++/Java/Eiffel fait un polymorphisme
de substitution dans lequel les parametres sont explicites,
puisque donné par le typage que le programmeur doit expliciter.
class X { void foo(); };
class XX : public X {};
class Y { void foo(); };
Si j'écris une fonction qui a besoin que son argument
possède une méthode foo, avec l'héritage, je dois donner
un type (*X ou &X) et seules les classes descendant
explicitement de X pourront être paramêtre.
Alors qu'avec un template, ce sera implicite.
Non ?
La situation en C++ est compliquee parce que les templates ont aussi
un aspect substitutionnel -- et un aspect ad hoc d'ailleurs -- qui
sert souvent: on ne passe pas souvent les operations possibles
explicitement (et les traits sont souvent utilises quand on le fait
pour retrouver de l'implicite).
Oui, pour moi, il y a deux polymorphismes en C++, un dynamique
(mais qui possède des aspects statiques), l'héritage,
et un statique, les templates.
Dans cette approche, SmallTalk est purement dynamique.
Jean-Marc Bourguet wrote:Marc Boyer writes:C'est à dire que pour toi, la généricité est dynamique et que tu
ne fait pas une distinction polymorphisme dynamique (héritage) et
polymorphisme statique (généricité) ?
L'aspect statique ou dynamique me semble complement independant. Je
peux concervoir un langage ou tout est dynamique ou tout statique
(mais bien plus contraint). En ce qui concerne le polymorphisme de
substitution -- l'heritage n'est qu'un moyen de l'obtenir -- la
version C++ me semble parmis les plus statiques possibles sans
contraintes redihibitives.
C'est à dire que tu ne vois pas la généricité C++ comme
un moyen de faire du polymorphisme de substitution.La difference entre polymorphisme de substitution et polymorphisme
parametrique est que les operations sur les parametres sont implicites
dans le premier (elles sont deduites du type) et explicite dans le
second.
Je suis pas bien sur de comprendre ton argumentation.
Pour moi, l'héritage C++/Java/Eiffel fait un polymorphisme
de substitution dans lequel les parametres sont explicites,
puisque donné par le typage que le programmeur doit expliciter.
class X { void foo(); };
class XX : public X {};
class Y { void foo(); };
Si j'écris une fonction qui a besoin que son argument
possède une méthode foo, avec l'héritage, je dois donner
un type (*X ou &X) et seules les classes descendant
explicitement de X pourront être paramêtre.
Alors qu'avec un template, ce sera implicite.
Non ?La situation en C++ est compliquee parce que les templates ont aussi
un aspect substitutionnel -- et un aspect ad hoc d'ailleurs -- qui
sert souvent: on ne passe pas souvent les operations possibles
explicitement (et les traits sont souvent utilises quand on le fait
pour retrouver de l'implicite).
Oui, pour moi, il y a deux polymorphismes en C++, un dynamique
(mais qui possède des aspects statiques), l'héritage,
et un statique, les templates.
Dans cette approche, SmallTalk est purement dynamique.
Jean-Marc Bourguet wrote:Marc Boyer writes:C'est à dire que pour toi, la généricité est dynamique et que tu
ne fait pas une distinction polymorphisme dynamique (héritage) et
polymorphisme statique (généricité) ?
L'aspect statique ou dynamique me semble complement independant. Je
peux concervoir un langage ou tout est dynamique ou tout statique
(mais bien plus contraint). En ce qui concerne le polymorphisme de
substitution -- l'heritage n'est qu'un moyen de l'obtenir -- la
version C++ me semble parmis les plus statiques possibles sans
contraintes redihibitives.
C'est à dire que tu ne vois pas la généricité C++ comme un moyen
de faire du polymorphisme de substitution.
La difference entre polymorphisme de substitution et polymorphisme
parametrique est que les operations sur les parametres sont
implicites dans le premier (elles sont deduites du type) et
explicite dans le second.
Je suis pas bien sur de comprendre ton argumentation. Pour moi,
l'héritage C++/Java/Eiffel fait un polymorphisme de substitution
dans lequel les parametres sont explicites,
Alors qu'avec un template, ce sera implicite.
Non ?La situation en C++ est compliquee parce que les templates ont aussi
un aspect substitutionnel -- et un aspect ad hoc d'ailleurs -- qui
sert souvent: on ne passe pas souvent les operations possibles
explicitement (et les traits sont souvent utilises quand on le fait
pour retrouver de l'implicite).
Oui, pour moi, il y a deux polymorphismes en C++, un dynamique
(mais qui possède des aspects statiques), l'héritage,
et un statique, les templates.
Jean-Marc Bourguet wrote:
Marc Boyer <Marc.Boyer@enseeiht.yahoo.fr.invalid> writes:
C'est à dire que pour toi, la généricité est dynamique et que tu
ne fait pas une distinction polymorphisme dynamique (héritage) et
polymorphisme statique (généricité) ?
L'aspect statique ou dynamique me semble complement independant. Je
peux concervoir un langage ou tout est dynamique ou tout statique
(mais bien plus contraint). En ce qui concerne le polymorphisme de
substitution -- l'heritage n'est qu'un moyen de l'obtenir -- la
version C++ me semble parmis les plus statiques possibles sans
contraintes redihibitives.
C'est à dire que tu ne vois pas la généricité C++ comme un moyen
de faire du polymorphisme de substitution.
La difference entre polymorphisme de substitution et polymorphisme
parametrique est que les operations sur les parametres sont
implicites dans le premier (elles sont deduites du type) et
explicite dans le second.
Je suis pas bien sur de comprendre ton argumentation. Pour moi,
l'héritage C++/Java/Eiffel fait un polymorphisme de substitution
dans lequel les parametres sont explicites,
Alors qu'avec un template, ce sera implicite.
Non ?
La situation en C++ est compliquee parce que les templates ont aussi
un aspect substitutionnel -- et un aspect ad hoc d'ailleurs -- qui
sert souvent: on ne passe pas souvent les operations possibles
explicitement (et les traits sont souvent utilises quand on le fait
pour retrouver de l'implicite).
Oui, pour moi, il y a deux polymorphismes en C++, un dynamique
(mais qui possède des aspects statiques), l'héritage,
et un statique, les templates.
Jean-Marc Bourguet wrote:Marc Boyer writes:C'est à dire que pour toi, la généricité est dynamique et que tu
ne fait pas une distinction polymorphisme dynamique (héritage) et
polymorphisme statique (généricité) ?
L'aspect statique ou dynamique me semble complement independant. Je
peux concervoir un langage ou tout est dynamique ou tout statique
(mais bien plus contraint). En ce qui concerne le polymorphisme de
substitution -- l'heritage n'est qu'un moyen de l'obtenir -- la
version C++ me semble parmis les plus statiques possibles sans
contraintes redihibitives.
C'est à dire que tu ne vois pas la généricité C++ comme un moyen
de faire du polymorphisme de substitution.
La difference entre polymorphisme de substitution et polymorphisme
parametrique est que les operations sur les parametres sont
implicites dans le premier (elles sont deduites du type) et
explicite dans le second.
Je suis pas bien sur de comprendre ton argumentation. Pour moi,
l'héritage C++/Java/Eiffel fait un polymorphisme de substitution
dans lequel les parametres sont explicites,
Alors qu'avec un template, ce sera implicite.
Non ?La situation en C++ est compliquee parce que les templates ont aussi
un aspect substitutionnel -- et un aspect ad hoc d'ailleurs -- qui
sert souvent: on ne passe pas souvent les operations possibles
explicitement (et les traits sont souvent utilises quand on le fait
pour retrouver de l'implicite).
Oui, pour moi, il y a deux polymorphismes en C++, un dynamique
(mais qui possède des aspects statiques), l'héritage,
et un statique, les templates.
Et la surcharge, tu la ranges où ?
Et la surcharge, tu la ranges où ?
Et la surcharge, tu la ranges où ?