Maison >développement back-end >C++ >C++ et C++ : quelle est la différence ?

C++ et C++ : quelle est la différence ?

WBOY
WBOYoriginal
2024-04-03 17:45:01921parcourir

Différences entre C et C++ : Système de types : C est plus faible, C++ est plus fort, nécessite une conversion explicite. Objets et classes : non pris en charge en C, pris en charge en C++, permettant la création et l'utilisation de types personnalisés. Héritage et polymorphisme : non pris en charge par C, pris en charge par C++, permettant l'héritage de classe et les fonctionnalités de réutilisation. Surcharge de fonctions et d'opérateurs : non prise en charge en C, prise en charge en C++, permettant un comportement personnalisé des fonctions et des opérateurs.

C++ et C++ : quelle est la différence ?

C vs C++ : Une analyse des nuances

Avant-propos

C++ est un langage de programmation orienté objet dérivé du langage C. Malgré les similitudes, il existe des différences importantes entre les deux langues. Cet article explore ces différences et fournit des exemples de code pour approfondir la compréhension.

Système de types

  • C: Adoptez un système de types plus faible où les variables peuvent être implicitement converties en d'autres types.
  • C++ : Présente un système de types plus robuste qui nécessite des conversions de types explicites, améliorant ainsi la sécurité et la lisibilité du code.
// C
int a = 10;
double b = a; // 隐式转换

// C++
int a = 10;
double b = static_cast<double>(a); // 显式转换

Objets et classes

  • C: Ne prend pas en charge les concepts de programmation orientée objet (classes, objets).
  • C++ : Prend en charge la programmation orientée objet, permettant la création de types (classes) et d'instances (objets) définis par l'utilisateur à partir de ceux-ci.
// C++
class Person {
public:
    string name;
};

Person john; // 创建一个 Person 对象
cout << john.name; // 访问对象的成员

Héritage et polymorphisme

  • C: L'héritage et le polymorphisme ne sont pas pris en charge.
  • C++ : Prend en charge l'héritage et le polymorphisme, permettant aux classes dérivées d'hériter des propriétés et des méthodes des classes de base.
// C++
class Employee : public Person {
public:
    int salary;
};

Employee mary; // 创建一个 Employee 对象
cout << mary.name << ", " << mary.salary; // 访问对象属性和方法

Surcharge de fonctions et surcharge d'opérateurs

  • C : La surcharge de fonctions ou d'opérateurs n'est pas prise en charge.
  • C++ : Prend en charge la surcharge de fonctions (fonctions avec le même nom mais des paramètres différents) et la surcharge d'opérateurs (définition d'opérateurs pour les types personnalisés).
// C++
int add(int a, int b); // 函数重载
double operator+(double a, double b); // 运算符重载

Exemple pratique

Considérons un programme qui calcule la moyenne :

C

#include <stdio.h>
int main() {
    int num1, num2;
    printf("Enter two numbers: ");
    scanf("%d %d", &num1, &num2);
    float avg = (num1 + num2) / 2.0;
    printf("Average: %.2f\n", avg);
}

C++

#include <iostream>
using namespace std;
int main() {
    int num1, num2;
    cout << "Enter two numbers: ";
    cin >> num1 >> num2;
    double avg = static_cast<double>(num1 + num2) / 2;
    cout << "Average: " << fixed << setprecision(2) << avg << endl;
}

Dans la version C++, des conversions de type explicites sont utilisées pour garantir que avg 的类型为 double,以获得准确的平均值。此外,coutcin est utilisé pour entrée et sortie, interface utilisateur améliorée.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn