writes:
| Si le callback a un paramètre, la meilleur solution est de s'en
| servir. Comme on fait avec pthread_create:
| class Thread
| {
| public:
| void start() ;
| virtual void run() = 0 ;
Je note avec intérêt que tu montres des classes avec des fonctions
virtuelles publiques ;-)
kanze@gabi-soft.fr writes:
| Si le callback a un paramètre, la meilleur solution est de s'en
| servir. Comme on fait avec pthread_create:
| class Thread
| {
| public:
| void start() ;
| virtual void run() = 0 ;
Je note avec intérêt que tu montres des classes avec des fonctions
virtuelles publiques ;-)
writes:
| Si le callback a un paramètre, la meilleur solution est de s'en
| servir. Comme on fait avec pthread_create:
| class Thread
| {
| public:
| void start() ;
| virtual void run() = 0 ;
Je note avec intérêt que tu montres des classes avec des fonctions
virtuelles publiques ;-)
writes:
| Gabriel Dos Reis wrote in message
| news:...
| > writes:
| > | Si le callback a un paramètre, la meilleur solution est de s'en
| > | servir. Comme on fait avec pthread_create:
| > | class Thread
| > | {
| > | public:
| > | void start() ;
| > | virtual void run() = 0 ;
| > Je note avec intérêt que tu montres des classes avec des
| > fonctions virtuelles publiques ;-)
| Tout à fait. Les fonctions virtuelles privées, c'est un moyen, non
| une fin.
Heureux de te l'entendre dire !
C'est en effet une des faiblesses de Java. En C++, par exemple, il
est plus ou moins réconnu qu'une fonction publique n'est jamais
virtuelle. Elle renvoie à une fonction protégée virtuelle, toute
en vérifiant des pré- et des post-conditions, et éventuellement en
l'instrumentant. Chose qui est impossible en Java.
Message-ID:
| La fin, c'est l'enforcement du contrat. Alors, quel est le contrat
| de run() ?
C'est à toi de me le dire, je suis presque tenté de dire ;-/
Je ne suis pas connu pour avoir une position dogmatique sur les
fonctions virtuelles (ou toute autre fonctionnalité de C++).
En fait si, j'ai un dogme : les fonctionnalités de C++ devraient être
utilisées là cela elles ont du sens et là où elles servent de manière
utile.
Par exemple, je dérive publiquement d'une classe non-polymorphe, ou
j'utilise des fonctions virtuelles publiques, ou j'utilise des
templates pour réduire le code-bloat (oui, surprenant, non ?) qu'on
pourrait trouver avec les techniques classiques « orientées objet »,
etc.. là cela a du sens. Je n'ai pas d'obédiance prédéfiniw ;-)
| En fait, c'est Kelvin Henney qui m'a fait comprendre cette
| particularité, il y a longtemps, en comp.lang.c++.moderated. Il
| parlait
Août 2001 n'est pas si « longtemps » ;-/
[...]
| parce que le but, c'est de ne pas imposer un contrat. Du coup, si la
| programmation par contrat n'a pas de sens, les moyens de
| l'implémenter ne sert pas.
Oh très certainement ; et je ne dirais pas le contraire. Mais il y a
une forte rumeur urbaine qui dit qu'une fonction virtuelle, en C++,
n'est jamais publique ;-)
kanze@gabi-soft.fr writes:
| Gabriel Dos Reis <gdr@cs.tamu.edu> wrote in message
| news:<m3brno60ye.fsf@merlin.cs.tamu.edu>...
| > kanze@gabi-soft.fr writes:
| > | Si le callback a un paramètre, la meilleur solution est de s'en
| > | servir. Comme on fait avec pthread_create:
| > | class Thread
| > | {
| > | public:
| > | void start() ;
| > | virtual void run() = 0 ;
| > Je note avec intérêt que tu montres des classes avec des
| > fonctions virtuelles publiques ;-)
| Tout à fait. Les fonctions virtuelles privées, c'est un moyen, non
| une fin.
Heureux de te l'entendre dire !
C'est en effet une des faiblesses de Java. En C++, par exemple, il
est plus ou moins réconnu qu'une fonction publique n'est jamais
virtuelle. Elle renvoie à une fonction protégée virtuelle, toute
en vérifiant des pré- et des post-conditions, et éventuellement en
l'instrumentant. Chose qui est impossible en Java.
Message-ID: <86og1gw1nf.fsf@gabi-soft.de>
| La fin, c'est l'enforcement du contrat. Alors, quel est le contrat
| de run() ?
C'est à toi de me le dire, je suis presque tenté de dire ;-/
Je ne suis pas connu pour avoir une position dogmatique sur les
fonctions virtuelles (ou toute autre fonctionnalité de C++).
En fait si, j'ai un dogme : les fonctionnalités de C++ devraient être
utilisées là cela elles ont du sens et là où elles servent de manière
utile.
Par exemple, je dérive publiquement d'une classe non-polymorphe, ou
j'utilise des fonctions virtuelles publiques, ou j'utilise des
templates pour réduire le code-bloat (oui, surprenant, non ?) qu'on
pourrait trouver avec les techniques classiques « orientées objet »,
etc.. là cela a du sens. Je n'ai pas d'obédiance prédéfiniw ;-)
| En fait, c'est Kelvin Henney qui m'a fait comprendre cette
| particularité, il y a longtemps, en comp.lang.c++.moderated. Il
| parlait
Août 2001 n'est pas si « longtemps » ;-/
[...]
| parce que le but, c'est de ne pas imposer un contrat. Du coup, si la
| programmation par contrat n'a pas de sens, les moyens de
| l'implémenter ne sert pas.
Oh très certainement ; et je ne dirais pas le contraire. Mais il y a
une forte rumeur urbaine qui dit qu'une fonction virtuelle, en C++,
n'est jamais publique ;-)
writes:
| Gabriel Dos Reis wrote in message
| news:...
| > writes:
| > | Si le callback a un paramètre, la meilleur solution est de s'en
| > | servir. Comme on fait avec pthread_create:
| > | class Thread
| > | {
| > | public:
| > | void start() ;
| > | virtual void run() = 0 ;
| > Je note avec intérêt que tu montres des classes avec des
| > fonctions virtuelles publiques ;-)
| Tout à fait. Les fonctions virtuelles privées, c'est un moyen, non
| une fin.
Heureux de te l'entendre dire !
C'est en effet une des faiblesses de Java. En C++, par exemple, il
est plus ou moins réconnu qu'une fonction publique n'est jamais
virtuelle. Elle renvoie à une fonction protégée virtuelle, toute
en vérifiant des pré- et des post-conditions, et éventuellement en
l'instrumentant. Chose qui est impossible en Java.
Message-ID:
| La fin, c'est l'enforcement du contrat. Alors, quel est le contrat
| de run() ?
C'est à toi de me le dire, je suis presque tenté de dire ;-/
Je ne suis pas connu pour avoir une position dogmatique sur les
fonctions virtuelles (ou toute autre fonctionnalité de C++).
En fait si, j'ai un dogme : les fonctionnalités de C++ devraient être
utilisées là cela elles ont du sens et là où elles servent de manière
utile.
Par exemple, je dérive publiquement d'une classe non-polymorphe, ou
j'utilise des fonctions virtuelles publiques, ou j'utilise des
templates pour réduire le code-bloat (oui, surprenant, non ?) qu'on
pourrait trouver avec les techniques classiques « orientées objet »,
etc.. là cela a du sens. Je n'ai pas d'obédiance prédéfiniw ;-)
| En fait, c'est Kelvin Henney qui m'a fait comprendre cette
| particularité, il y a longtemps, en comp.lang.c++.moderated. Il
| parlait
Août 2001 n'est pas si « longtemps » ;-/
[...]
| parce que le but, c'est de ne pas imposer un contrat. Du coup, si la
| programmation par contrat n'a pas de sens, les moyens de
| l'implémenter ne sert pas.
Oh très certainement ; et je ne dirais pas le contraire. Mais il y a
une forte rumeur urbaine qui dit qu'une fonction virtuelle, en C++,
n'est jamais publique ;-)
Mais j'ai parfois l'impression que tu fais pareil. Si je dis noir,
tu dis blanc, peut-être simplement pour me faire plus y reflechir.
Mais j'ai parfois l'impression que tu fais pareil. Si je dis noir,
tu dis blanc, peut-être simplement pour me faire plus y reflechir.
Mais j'ai parfois l'impression que tu fais pareil. Si je dis noir,
tu dis blanc, peut-être simplement pour me faire plus y reflechir.
la
réalité veut qu'il y a des cas où l'optimisation est importante (ce dont
je ne me suis jamais douté, mais qu'il ne semblait pas la peine de dire
auparavent),
la
réalité veut qu'il y a des cas où l'optimisation est importante (ce dont
je ne me suis jamais douté, mais qu'il ne semblait pas la peine de dire
auparavent),
la
réalité veut qu'il y a des cas où l'optimisation est importante (ce dont
je ne me suis jamais douté, mais qu'il ne semblait pas la peine de dire
auparavent),
writes:Mais j'ai parfois l'impression que tu fais pareil. Si je dis noir,
tu dis blanc, peut-être simplement pour me faire plus y reflechir.
Toi? ou d'autres lecteurs qui te connaisse moins et qui seraient
tentes de te prendre au pied de la lettre?
kanze@gabi-soft.fr writes:
Mais j'ai parfois l'impression que tu fais pareil. Si je dis noir,
tu dis blanc, peut-être simplement pour me faire plus y reflechir.
Toi? ou d'autres lecteurs qui te connaisse moins et qui seraient
tentes de te prendre au pied de la lettre?
writes:Mais j'ai parfois l'impression que tu fais pareil. Si je dis noir,
tu dis blanc, peut-être simplement pour me faire plus y reflechir.
Toi? ou d'autres lecteurs qui te connaisse moins et qui seraient
tentes de te prendre au pied de la lettre?