Voici les principales différences entre Delphi et C++
en termes de langage et de syntaxe :
1. Syntaxe générale
- Delphi :
- Basé sur Pascal, avec une syntaxe claire et lisible.
- Les blocs sont délimités par `begin ... end`,
souvent plus intuitifs pour les débutants.
- Les mots-clés sont en anglais et souvent
explicites (`procedure`, `function`, `var`, etc.).
Exemple :
procedure HelloWorld;
begin
WriteLn('Hello, World!');
end;
- C++ :
- Hérité de C, utilise des `{ ... }` pour délimiter les blocs.
- Plus succinct et parfois cryptique, notamment avec
les opérateurs comme `*` (pointeurs) ou `&` (références).
Exemple :
void HelloWorld() {
std::cout << "Hello, World!" << std::endl;
}
2. Déclaration des variables
- Delphi :
- La déclaration des variables se fait avec le mot-clé
`var` suivi de leur type.
- Les déclarations sont souvent regroupées au début
d'une procédure ou d'une fonction.
Exemple :
var
x: Integer;
y: String;
begin
x := 42;
y := 'Bonjour';
end;
- C++ :
- Les variables sont déclarées directement avec leur type.
- Les déclarations peuvent être faites n'importe où
dans le code (avant leur première utilisation).
Exemple :
int x = 42;
std::string y = "Bonjour";
3. Types de données
- Delphi :
- Dispose de types spécifiques comme `String`, `Integer`,
`Boolean`, etc.
- Les chaînes de caractères (`String`) sont gérées
automatiquement (pas besoin de pointeurs).
- C++ :
- Types similaires à ceux de C : `int`, `char`, `float`,
`double`, etc.
- Les chaînes sont souvent manipulées à l'aide de
`std::string` ou des tableaux de caractères (`char[]`).
4. Pointeurs
- Delphi :
- Supporte les pointeurs, mais leur utilisation est
moins courante car beaucoup de structures
(comme les chaînes ou les objets) sont gérées automatiquement.
Exemple :
var
p: ^Integer;
x: Integer;
begin
x := 10;
p := @x;
WriteLn(p^); // Affiche 10
end;
- C++ :
- Les pointeurs sont une composante centrale, utilisés
pour la gestion fine de la mémoire.
Exemple :
int x = 10;
int* p = &x;
std::cout << *p << std::endl; // Affiche 10
5. Programmation orientée objet
- Delphi :
- Supporte la programmation orientée objet avec des
mots-clés explicites comme `class`, `inherit`, `override`.
- Gestion plus simple grâce à la mémoire automatique pour les objets.
Exemple :
type
TPerson = class
Name: String;
procedure SayHello;
end;
procedure TPerson.SayHello;
begin
WriteLn('Hello, ' + Name);
end;
- C++ :
- Supporte la programmation orientée objet avec une
flexibilité et un contrôle supérieurs.
- L'utilisateur doit gérer manuellement la création
et la destruction d'objets, sauf en utilisant des smart pointers.
Exemple :
class Person {
public:
std::string name;
void SayHello() {
std::cout << "Hello, " << name << std::endl;
}
};
6. Gestion des exceptions
- Delphi :
- Les exceptions sont gérées avec `try ... except` ou `try ... finally`.
- Syntaxe plus lisible pour capturer et gérer les erreurs.
Exemple :
try
WriteLn(10 div 0);
except
on E: Exception do
WriteLn('Erreur : ', E.Message);
end;
- C++ :
- Les exceptions sont gérées avec `try ... catch`,
mais leur utilisation est moins courante dans certains projets C++.
Exemple :
try {
int x = 10 / 0;
} catch (const std::exception& e) {
std::cout << "Erreur : " << e.what() << std::endl;
}
7. Fonctions et procédures
- Delphi :
- Distingue les procédures (sans valeur de retour) et
les fonctions (avec valeur de retour).
Exemple :
procedure ShowMessage;
begin
WriteLn('Ceci est une procédure.');
end;
function Add(a, b: Integer): Integer;
begin
Result := a + b;
end;
- C++ :
- Tout est une fonction, même si elle ne retourne rien
(utilisation de `void`).
Exemple :
void ShowMessage() {
std::cout << "Ceci est une fonction." << std::endl;
}
int Add(int a, int b) {
return a + b;
}
8. Bibliothèques standard
- Delphi :
- Dispose de bibliothèques intégrées comme la VCL (Visual Component Library) et FireMonkey, pour créer des applications rapidement.
- Ces bibliothèques sont spécifiquement adaptées au développement graphique sous Windows (ou multiplateforme avec FMX).
- C++ :
- La Standard Template Library (STL) offre des outils
puissants pour la gestion des collections, des algorithmes,
et des chaînes.
- Les bibliothèques pour GUI, comme Qt ou wxWidgets,
doivent être ajoutées séparément.
En résumé, Delphi privilégie la simplicité, la lisibilité
et la productivité pour des projets typiquement orientés
applications de bureau. C++, en revanche, est plus flexible
et puissant, mais aussi plus complexe, avec une courbe
d’apprentissage plus raide.
Aucun commentaire:
Enregistrer un commentaire