OVH Cloud OVH Cloud

Migration vers c++

19 réponses
Avatar
Averroes
Bonsoir ou bonjour,

Je suis un inconditionnel du java( la hache de guerre java vs c++
déterré? heureusement que c'est pas encore intel/amd ou ati/nvidia).

Le plus grand avantage du java est la programmation objet, la rapidité
de programmation et surtout le framework enorme de sun.

Mon probléme en c++ c'est "comment on fait les interfaces (pas
graphique) en c++?" es ce quelqu'un pourrait il m'expliquer?

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++"

Merci beaucoup.
--
Moi : "L'ignorance n'est pas une excuse."

10 réponses

1 2
Avatar
Fabien LE LEZ
On Sun, 18 Dec 2005 00:56:44 +0100, Averroes :

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.

Avatar
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

Avatar
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>

Avatar
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.

Avatar
Averroes
merci pour vos réponses.
--
Moi : "L'ignorance n'est pas une excuse."
Avatar
Stéphane Wirtel
Pourquoi un passage à C++ si tu maîtrises Java ?

Stéphane
Avatar
Averroes
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.

--
Moi : "L'ignorance n'est pas une excuse."

Avatar
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.


http://www.fnac.com/Shelf/article.asp?PRID38697&OrderInSession=1&Mn=3&SID83ec928-2b4e-f315-2b56-fe605c7a56e1&TTL1220051233&Origin=FnacAff&Ra=-1&To=0&Nu=1&UIDcae58b1-430c-eac6-2e9a-53271d341e32&Fr=0

http://www.fnac.com/Shelf/article.asp?PRID’4630&OrderInSession=1&Mn=5&SID83ec928-2b4e-f315-2b56-fe605c7a56e1&TTL1220051233&Origin=FnacAff&Ra=-1&To=0&Nu=5&UIDcae58b1-430c-eac6-2e9a-53271d341e32&Fr=0


--
"Les Hommes naissent libres et égaux en droit.
Après, ils se démerdent."
(Jean Yanne / 1933-2003)


Avatar
Fabien LE LEZ
On Sun, 18 Dec 2005 12:34:45 +0100, "ByB" :

http://www.fnac.com/Shelf/article.asp?PRID38697&Or[...]


http://www.eyrolles.com/Informatique/Livre/9782212113273/livre-apprendre-java-et-c-en-parallele.php

"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 :

void Lecture_texte::lecture() {
ifstream ifichier(nom_fichier.c_str());
[...]
char une_ligne[1024];
int numero_de_ligne = 1;
while (ifichier.getline(une_ligne, 1024)) {
cout << numero_de_ligne << ": " << une_ligne << endl;
numero_de_ligne++;
}
}

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.

Avatar
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

1 2