Mon probléme en c++ c'est "comment on fait les interfaces (pas graphique) en c++?"
Si par "interface" tu entends "une classe qui ne contient que des fonctions virtuelles pures et rien d'autre", c'est simple : il te suffit de créer une classe, et de n'y mettre que des fonctions virtuelles pures et rien d'autre.
On Sun, 18 Dec 2005 00:56:44 +0100, Averroes <averroes@no_where.com>:
Mon probléme en c++ c'est "comment on fait les interfaces (pas
graphique) en c++?"
Si par "interface" tu entends "une classe qui ne contient que des
fonctions virtuelles pures et rien d'autre", c'est simple : il te
suffit de créer une classe, et de n'y mettre que des fonctions
virtuelles pures et rien d'autre.
Mon probléme en c++ c'est "comment on fait les interfaces (pas graphique) en c++?"
Si par "interface" tu entends "une classe qui ne contient que des fonctions virtuelles pures et rien d'autre", c'est simple : il te suffit de créer une classe, et de n'y mettre que des fonctions virtuelles pures et rien d'autre.
Michael
Si par "interface" tu entends "une classe qui ne contient que des fonctions virtuelles pures et rien d'autre", c'est simple : il te suffit de créer une classe, et de n'y mettre que des fonctions virtuelles pures et rien d'autre.
:D
Si par "interface" tu entends "une classe qui ne contient que des
fonctions virtuelles pures et rien d'autre", c'est simple : il te
suffit de créer une classe, et de n'y mettre que des fonctions
virtuelles pures et rien d'autre.
Si par "interface" tu entends "une classe qui ne contient que des fonctions virtuelles pures et rien d'autre", c'est simple : il te suffit de créer une classe, et de n'y mettre que des fonctions virtuelles pures et rien d'autre.
:D
Fabien LE LEZ
On Sun, 18 Dec 2005 00:56:44 +0100, Averroes :
<troll>
Le plus grand avantage du java est la programmation objet, la rapidité de programmation et surtout le framework enorme de sun.
Euh... ça fait trois.
Pour le framework, je veux bien. Il est vrai que la relation du programmeur avec les bibliothèques doit être assez différente en C++ et en Java.
Pour la rapidité de programmation, j'ai des doutes. C'est surtout qu'on n'utilisera pas forcément C++ et Java pour le même type de programmes. À chaque langage ses applications.
Mais pour la "programmation objet", je ne vois pas bien en quoi Java a l'avantage sur C++. À part peut-être que (AFAIK) Java a tendance à imposer un paradigme, alors que C++ laisse le choix au programmeur.
</troll>
On Sun, 18 Dec 2005 00:56:44 +0100, Averroes <averroes@no_where.com>:
<troll>
Le plus grand avantage du java est la programmation objet, la rapidité
de programmation et surtout le framework enorme de sun.
Euh... ça fait trois.
Pour le framework, je veux bien. Il est vrai que la relation du
programmeur avec les bibliothèques doit être assez différente en C++
et en Java.
Pour la rapidité de programmation, j'ai des doutes. C'est surtout
qu'on n'utilisera pas forcément C++ et Java pour le même type de
programmes. À chaque langage ses applications.
Mais pour la "programmation objet", je ne vois pas bien en quoi Java a
l'avantage sur C++. À part peut-être que (AFAIK) Java a tendance à
imposer un paradigme, alors que C++ laisse le choix au programmeur.
Le plus grand avantage du java est la programmation objet, la rapidité de programmation et surtout le framework enorme de sun.
Euh... ça fait trois.
Pour le framework, je veux bien. Il est vrai que la relation du programmeur avec les bibliothèques doit être assez différente en C++ et en Java.
Pour la rapidité de programmation, j'ai des doutes. C'est surtout qu'on n'utilisera pas forcément C++ et Java pour le même type de programmes. À chaque langage ses applications.
Mais pour la "programmation objet", je ne vois pas bien en quoi Java a l'avantage sur C++. À part peut-être que (AFAIK) Java a tendance à imposer un paradigme, alors que C++ laisse le choix au programmeur.
</troll>
loufoque
Si y a des personnes qui ont des liens qui concerne "du java à c++" ou "c++ totalement orientée objets" ou "comment organisé un projet entier en c++"
Tu suis l'approche de la bibliothèque standard, boost et compagnie et normalement c'est totalement orienté objet.
Si y a des personnes qui ont des liens qui concerne "du java à c++" ou
"c++ totalement orientée objets" ou "comment organisé un projet entier
en c++"
Tu suis l'approche de la bibliothèque standard, boost et compagnie et
normalement c'est totalement orienté objet.
C'est une connaissance que j'ai envie d'acquerir et qui mes necessaire pour mon module c++/imagerie 3d qu i consiste à representer un environnement interractif, dans mon cas alexandrie. Et al contrainte que je me suis appliqué c'est que sa doit etre totalement orientée objet. Je vais utiliser opengl.
Je suis toute ouïe à des liens,livres que vous jugerez utiles.
-- Moi : "L'ignorance n'est pas une excuse."
Pourquoi un passage à C++ si tu maîtrises Java ?
Stéphane
C'est une connaissance que j'ai envie d'acquerir et qui mes necessaire
pour mon module c++/imagerie 3d qu i consiste à representer un
environnement interractif, dans mon cas alexandrie. Et al contrainte que
je me suis appliqué c'est que sa doit etre totalement orientée objet.
Je vais utiliser opengl.
Je suis toute ouïe à des liens,livres que vous jugerez utiles.
C'est une connaissance que j'ai envie d'acquerir et qui mes necessaire pour mon module c++/imagerie 3d qu i consiste à representer un environnement interractif, dans mon cas alexandrie. Et al contrainte que je me suis appliqué c'est que sa doit etre totalement orientée objet. Je vais utiliser opengl.
Je suis toute ouïe à des liens,livres que vous jugerez utiles.
-- Moi : "L'ignorance n'est pas une excuse."
ByB
Mieux que du Shakespeare, c'est le message de Averroes qui affirme :
Pourquoi un passage à C++ si tu maîtrises Java ?
Stéphane
C'est une connaissance que j'ai envie d'acquerir et qui mes necessaire pour mon module c++/imagerie 3d qu i consiste à representer un environnement interractif, dans mon cas alexandrie. Et al contrainte que je me suis appliqué c'est que sa doit etre totalement orientée objet. Je vais utiliser opengl.
Je suis toute ouïe à des liens,livres que vous jugerez utiles.
-- "Les Hommes naissent libres et égaux en droit. Après, ils se démerdent." (Jean Yanne / 1933-2003)
Mieux que du Shakespeare, c'est le message de Averroes qui affirme :
Pourquoi un passage à C++ si tu maîtrises Java ?
Stéphane
C'est une connaissance que j'ai envie d'acquerir et qui mes necessaire pour
mon module c++/imagerie 3d qu i consiste à representer un environnement
interractif, dans mon cas alexandrie. Et al contrainte que je me suis
appliqué c'est que sa doit etre totalement orientée objet.
Je vais utiliser opengl.
Je suis toute ouïe à des liens,livres que vous jugerez utiles.
Mieux que du Shakespeare, c'est le message de Averroes qui affirme :
Pourquoi un passage à C++ si tu maîtrises Java ?
Stéphane
C'est une connaissance que j'ai envie d'acquerir et qui mes necessaire pour mon module c++/imagerie 3d qu i consiste à representer un environnement interractif, dans mon cas alexandrie. Et al contrainte que je me suis appliqué c'est que sa doit etre totalement orientée objet. Je vais utiliser opengl.
Je suis toute ouïe à des liens,livres que vous jugerez utiles.
"Apprendre Java et C++ en parallèle", par Jean Bernard Boichat.
Deux chapitres sont disponibles en téléchargement : 1 et 9.
Le chapitre 1 me paraît un peu bordélique, mais je suppose qu'il est toujours difficile d'écrire une introduction à un langage (ou deux).
J'y ai relevé une perle : "Avec un int main() en C++, il est nécessaire de retourner une valeur qu'il est judicieux de définir négativement en cas d'erreur."
Passons sur le "nécessaire" erroné ; mais quelqu'un pourrait-il m'expliquer ce que signifie le "négativement" ici ? :-/
Dans le chapitre 9 (qui traite des iostream), il ose proposer le code suivant :
Un comble pour un livre dont on aurait pû penser qu'il éviterait les ornières du C, alors même qu'il donne, quelques lignes plus loin, une version Java correcte :-/
À noter que le PDF disponible en téléchargement doit être un brouillon, et pas la version corrigée. On peut notamment y lire "librairie" à la place de "bibliothèque".
À noter aussi qu'il utilise des fonctions non portables (comme opendir()) sans trop prévenir qu'elles ne font pas partie du C++, et qu'il s'étend sur la syntaxe de sprintf, et qu'il a d'une manière générale une forte tendance à préférer char[] à std::string.
On Sun, 18 Dec 2005 12:34:45 +0100, "ByB" <email@email.com>:
"Apprendre Java et C++ en parallèle", par Jean Bernard Boichat.
Deux chapitres sont disponibles en téléchargement : 1 et 9.
Le chapitre 1 me paraît un peu bordélique, mais je suppose qu'il est
toujours difficile d'écrire une introduction à un langage (ou deux).
J'y ai relevé une perle :
"Avec un int main() en C++, il est nécessaire de retourner
une valeur qu'il est judicieux de définir négativement en
cas d'erreur."
Passons sur le "nécessaire" erroné ; mais quelqu'un pourrait-il
m'expliquer ce que signifie le "négativement" ici ? :-/
Dans le chapitre 9 (qui traite des iostream), il ose proposer le code
suivant :
Un comble pour un livre dont on aurait pû penser qu'il éviterait les
ornières du C, alors même qu'il donne, quelques lignes plus loin, une
version Java correcte :-/
À noter que le PDF disponible en téléchargement doit être un
brouillon, et pas la version corrigée. On peut notamment y lire
"librairie" à la place de "bibliothèque".
À noter aussi qu'il utilise des fonctions non portables (comme
opendir()) sans trop prévenir qu'elles ne font pas partie du C++, et
qu'il s'étend sur la syntaxe de sprintf, et qu'il a d'une manière
générale une forte tendance à préférer char[] à std::string.
"Apprendre Java et C++ en parallèle", par Jean Bernard Boichat.
Deux chapitres sont disponibles en téléchargement : 1 et 9.
Le chapitre 1 me paraît un peu bordélique, mais je suppose qu'il est toujours difficile d'écrire une introduction à un langage (ou deux).
J'y ai relevé une perle : "Avec un int main() en C++, il est nécessaire de retourner une valeur qu'il est judicieux de définir négativement en cas d'erreur."
Passons sur le "nécessaire" erroné ; mais quelqu'un pourrait-il m'expliquer ce que signifie le "négativement" ici ? :-/
Dans le chapitre 9 (qui traite des iostream), il ose proposer le code suivant :
Un comble pour un livre dont on aurait pû penser qu'il éviterait les ornières du C, alors même qu'il donne, quelques lignes plus loin, une version Java correcte :-/
À noter que le PDF disponible en téléchargement doit être un brouillon, et pas la version corrigée. On peut notamment y lire "librairie" à la place de "bibliothèque".
À noter aussi qu'il utilise des fonctions non portables (comme opendir()) sans trop prévenir qu'elles ne font pas partie du C++, et qu'il s'étend sur la syntaxe de sprintf, et qu'il a d'une manière générale une forte tendance à préférer char[] à std::string.
loic.actarus.joly
Mon probléme en c++ c'est "comment on fait les interfaces (pas graphique) en c++?" es ce quelqu'un pourrait il m'expliquer?
Je tiens à préciser qu'il est des cas où une interface en Java se traduit par rien du tout (pour l'instant) en C++. Il s'agit des interfaces utiles à la compilation. Par exemple, si on veut une fonction qui puisse dupliquer son paramètre, on écrira un truc du genre en Java (désolé, je n'ai pas de connaissance pratique du Java, ma syntaxe est donc probablement farfelue) : int MaClasse::f(IClonable data) { data.clone(); }
En C++, il y a deux façons de faire : int f(IClonable *data) { data->clone(); }
avec IClonable une classe abstraite, comme décrite par Fabien.
Ou bien : template<class T> int f(T data) { data.clone(); }
Dans ce cas, l'interface est implicite, et sera vérifiée à l'instanciation du template avec un type.
Les principales différences : - Le cas 2 n'est possible que si le choix du type a lieu à la compilation - Le cas 2 est plus rapide que le 1 à l'exécution - On peut appliquer le cas 2 à un type pré-existant qui possède l'interface sans le savoir, sans avoir besoin de modifier ce type. - Le cas 2 documente moins de quelle interface il a besoin, ce qui pause aussi des problèmes de compilation séparée. Les concepts devraient résoudre ça dans une prochaine version du langage.
-- Loïc
Mon probléme en c++ c'est "comment on fait les interfaces (pas
graphique) en c++?" es ce quelqu'un pourrait il m'expliquer?
Je tiens à préciser qu'il est des cas où une interface en Java se
traduit par rien du tout (pour l'instant) en C++. Il s'agit des
interfaces utiles à la compilation. Par exemple, si on veut une
fonction qui puisse dupliquer son paramètre, on écrira un truc du
genre en Java (désolé, je n'ai pas de connaissance pratique du Java,
ma syntaxe est donc probablement farfelue) :
int MaClasse::f(IClonable data)
{
data.clone();
}
En C++, il y a deux façons de faire :
int f(IClonable *data)
{
data->clone();
}
avec IClonable une classe abstraite, comme décrite par Fabien.
Ou bien :
template<class T> int f(T data)
{
data.clone();
}
Dans ce cas, l'interface est implicite, et sera vérifiée à
l'instanciation du template avec un type.
Les principales différences :
- Le cas 2 n'est possible que si le choix du type a lieu à la
compilation
- Le cas 2 est plus rapide que le 1 à l'exécution
- On peut appliquer le cas 2 à un type pré-existant qui possède
l'interface sans le savoir, sans avoir besoin de modifier ce type.
- Le cas 2 documente moins de quelle interface il a besoin, ce qui
pause aussi des problèmes de compilation séparée. Les concepts
devraient résoudre ça dans une prochaine version du langage.
Mon probléme en c++ c'est "comment on fait les interfaces (pas graphique) en c++?" es ce quelqu'un pourrait il m'expliquer?
Je tiens à préciser qu'il est des cas où une interface en Java se traduit par rien du tout (pour l'instant) en C++. Il s'agit des interfaces utiles à la compilation. Par exemple, si on veut une fonction qui puisse dupliquer son paramètre, on écrira un truc du genre en Java (désolé, je n'ai pas de connaissance pratique du Java, ma syntaxe est donc probablement farfelue) : int MaClasse::f(IClonable data) { data.clone(); }
En C++, il y a deux façons de faire : int f(IClonable *data) { data->clone(); }
avec IClonable une classe abstraite, comme décrite par Fabien.
Ou bien : template<class T> int f(T data) { data.clone(); }
Dans ce cas, l'interface est implicite, et sera vérifiée à l'instanciation du template avec un type.
Les principales différences : - Le cas 2 n'est possible que si le choix du type a lieu à la compilation - Le cas 2 est plus rapide que le 1 à l'exécution - On peut appliquer le cas 2 à un type pré-existant qui possède l'interface sans le savoir, sans avoir besoin de modifier ce type. - Le cas 2 documente moins de quelle interface il a besoin, ce qui pause aussi des problèmes de compilation séparée. Les concepts devraient résoudre ça dans une prochaine version du langage.