Du Java au C++

publicité
Du Java au C++
Un exemple de code en Java et C++
Quelques mots sur le C++
La similitude entre Java et C++
L’extension du C
Les différences syntaxiques
Le programme principal
Le fichier d’en-tête
Construction et destruction des objets
La surcharge des opérateurs
Les constantes
Les différences fonctionnelles
Le passage de paramètres
L’héritage multiple / les interfaces
Les templates
Divers
L’apport de Java
Java – Comparaison C++ - 19/11/03
1
Un exemple de code en C++ et en Java
q Fichier C++ « Primitive.h »
#include “stream.h”
// Classe abstraite
class Primitive {
private :
int couleur;
public :
Primitive(int coul) {couleur = coul};
virtual ~Primitive() {};
vritual void Affiche() = 0;
}
q Fichier C++ « Point.h »
// classe concrète Point, dérive de Primitive
class Point : public Primitive {
private :
double coordx;
double coordy;
public :
Point(double,double,int);
~Point();
void Affiche();
}
Java – Comparaison C++ - 19/11/03
2
q Fichier C++ « Point.C »
#include “Point.h”
Point::Point(double x,double y,int
couleur):primitive(couleur) {
coordx = x;
ccordy = y; }
Point::~Point(){}
void Point::Affiche() {
cout << “Coordonnée x : “ << coordx;
cout << “Coordonnée y : “ << coordy;}
q Fichier en Java
public abstract class Primitive {
private int couleur;
public Primitive(int couleur) {
couleur = coul;}
}
public class Point extends Primitive {
private double coordx;
private double coordy;
public Point(double x, double y,int couleur) {
super(couleur);
coordx = x;
ccordy = y;}
public void Point::Affiche() {
System.out.println(“Coordonnée x : “ + coordx);
System.out.println(“Coordonnée x : “ + coordy);}
}
Java – Comparaison C++ - 19/11/03
3
Quelques mots sur le C++
q Des langages proches
Java et C++ sont syntaxiquement proches.
Les fonctionnalités sont globalement similaires
ØUn programmeur C++ peut passer à Java facilement à Java.
ØLa connaissance du C et du Java facilite l’apprentissage du
C++.
q Une extension du C
Le C++ est la version objet du C :
la syntaxe du C est « compatible » avec un compilateur C++
q Une approche classique
Pas de compatibilité du binaire entre plates-formes
Langage compilé en binaire machine.
Pas d’API mais des bibliothèques « standard » ou
commerciales
Standard Template Library
Open Inventor
…
Java – Comparaison C++ - 19/11/03
4
Quelques différences syntaxiques
q Le programme principal
N’appartient pas à une classe
q Le fichier d’en-tête
C++ est compilé, tout identificateur doit être déclaré avant
d’être utilisé :
Présence d’un fichier « header » comme en C définissant les
prototypes des fonctions et des classes
q Construction et destruction des objets
Le C++ définit explicitement le destructeur. Cette fonction
sert essentiellement à libérer la mémoire (pas de mécanisme
de ramasse miette).
Java ne dispose pas de destructeur, mais on peut effectuer des
actions à la destruction par la méthode finalize.
Java – Comparaison C++ - 19/11/03
5
Quelques différences syntaxiques …
q Les constantes
Une constante est déclarée par le préfixe const en C++.
Des paramètres peuvent être déclarés constants dans une
interface.
q La surcharge des opérateurs
Tous les opérateurs peuvent être surchargés en C++
Point::operator + (Point & p);
En particulier, l’allocation mémoire (opérateur new) peut être
surchargée.
Java – Comparaison C++ - 19/11/03
6
Les différences fonctionnelles
q Le passage de paramètres
• par référence
• par adresse
• par valeur
q L’héritage multiple / les interfaces
q Les template
classes patrons : code générique
q Divers
Les struct
Les tableaux
Les types prédéfinis
Les pointeurs sur les méthodes
Java – Comparaison C++ - 19/11/03
7
En conclusion
q L’apport de Java
La simplicité
La portabilité
L’API java
La gestion de processus
q Un regret
Les templates
Java – Comparaison C++ - 19/11/03
8
Téléchargement