Différence entre C et C ++ avec exemples | Langages de programmation

Principale différence: C et C ++ sont deux langages de programmation différents. C ++ a été développé à partir du langage de programmation C; Cependant, ils sont de nature très différente. La différence la plus évidente est que C est un langage orienté procédure, alors que C ++ supporte à la fois la programmation procédurale et orientée objet, il est donc souvent appelé langage hybride.

C et C ++ sont deux langages de programmation différents. C a été initialement développé par Dennis Ritchie chez AT & T Bell Labs entre 1969 et 1973. C ++ est un autre langage de programmation polyvalent. Il a été développé à partir du langage de programmation C original. Il a été développé par Bjarne Stroustrup aux Bell Labs à partir de 1979. C ++ s'appelait à l'origine C avec Classes, car il était basé sur C. Il a été renommé C ++ en 1983.

C est l’un des plus anciens langages de programmation actuellement utilisés et l’un des langages de programmation les plus utilisés. Il a été constamment utilisé dans des applications précédemment codées en langage assembleur. Cela inclut le système d'exploitation UNIX. Le C a également influencé directement ou indirectement de nombreux langages de programmation récents, tels que C #, D, Go, Java, JavaScript, Limbo, LPC, Perl, PHP, Python et le shell C d’Unix. Malgré toutes ces nouvelles langues, le C reste un langage de programmation populaire.

Le C ++ était à l'origine une amélioration du C. Il a été conçu pour être compatible source-lien avec le C. Cependant, il a ajouté des classes, des fonctions virtuelles, la surcharge d'opérateurs, l'héritage multiple, des modèles, la gestion des exceptions, etc. assez pour être considéré comme un langage de programmation à part entière. Il a été initialement ratifié en 1998 en tant que langage de programmation certifié ISO / IEC 14882: 1998. Aujourd'hui, le C ++ est couramment utilisé pour la conception matérielle.

C est un langage de programmation à usage général qui utilise un point-virgule (;) comme terminateur d'instruction, ainsi que des accolades ({}) pour regrouper des blocs d'instructions. Il possède des installations pour la programmation structurée et sa conception fournit des constructions qui peuvent mapper efficacement à des instructions machine typiques. Il autorise également la portée et la récursion des variables lexicales et possède un système de types statique, qui empêche de nombreuses opérations non souhaitées.

Cependant, comparé au C ++, le C a de nombreuses limitations. Comme C n’est pas orienté objet, il ne prend pas en charge les concepts OOPS. C ne prend pas en charge la surcharge de fonction et d’opérateur. Il ne peut pas utiliser de fonctions à l'intérieur de structures. Il ne prend pas en charge les fonctions virtuelles et les variables de référence, ni la gestion des exceptions. Il ne prend pas non plus en charge les variables de référence. De plus, C n'encapsule pas et ne sécurise pas les données. En comparaison, C ++ prend en charge toutes ces fonctionnalités.

En outre, C ne prend pas en charge la fonctionnalité NAMESPACE, contrairement à C ++. Un espace de noms est une région définitive qui permet de regrouper des identifiants (noms de types, fonctions, variables, etc.). Les espaces de noms peuvent ensuite être utilisés pour organiser le code en groupes logiques et éviter les conflits de noms. Cela est particulièrement utile lorsque la base de code comprend plusieurs bibliothèques, ce qui rend le code particulièrement propice aux conflits de noms.

Les deux langues diffèrent également par la manière dont les fonctions de mémoire d'adresse, d'entrée-sortie et de programmation par interface graphique. Par exemple, C utilise les fonctions calloc (), malloc () et free () pour allouer et désallouer de la mémoire, tandis que C ++ utilise new et delete. C utilise scanf () et printf () pour les entrées et les sorties, tandis que C ++ utilise les opérateurs cin >> et cout <<. C prend en charge les outils GTK pour la programmation graphique, alors que C ++ prend en charge les outils Qt pour la programmation graphique. Une autre différence est que C exige que l’on déclare toutes les variables en haut du programme, alors qu’en C ++, les variables peuvent être déclarées n’importe où dans le programme.

De plus, le C ++ est généralement considéré comme plus facile à apprendre car plus convivial que le C. Le C ++ comporte également de nombreuses fonctions supplémentaires facilitant le codage, en particulier pour les débutants dans le framework C. Cependant, beaucoup affirment que cela compte réellement. Les deux langues diffèrent tellement, qu’elles peuvent en fait être deux langues différentes, indépendantes l’une de l’autre. Une chose à garder à l'esprit est que C est beaucoup plus structuré que C ++, alors que C ++ a été conçu pour être plus expressif et abstrait que C.

Comparaison entre C et C ++:

C

C ++

Fondé

Développé par Dennis Ritchie chez AT & T Bell Labs entre 1969 et 1973.

Développé par Bjarne Stroustrup aux Bell Labs à partir de 1979.

Code source

Code source du programme au format libre

Développé à l'origine à partir du langage de programmation C

La langue

Langue orientée vers la procédure

Prend en charge les paradigmes de programmation procédurale et orientée objet; c'est pourquoi on l'appelle souvent un langage hybride.

Approche

Suit une approche descendante.

Suit l'approche ascendante.

Relation

C est un sous-ensemble de C ++. Il ne peut pas exécuter de code C ++.

C ++ est un sur-ensemble de C. C ++ peut exécuter la plupart du code C, alors que C ne peut pas exécuter de code C ++.

Conduire

Langage fonctionnel

Langage orienté objet

Concentrer

Se concentre sur la méthode ou le processus plutôt que sur les données.

Se concentre sur les données plutôt que sur la méthode ou la procédure.

Blocs de construction

Les fonctions

Objets

Mots clés

Contient 32 mots-clés

Contient 52 mots-clés

Concepts OOPS

Comme le langage 'C' est un langage orienté procédure, il ne prend pas en charge les concepts OOPS tels que classe, objet, héritage, polymorphisme, masquage de données, etc.

En tant que langage orienté objet, C ++ supporte les classes, les objets, le masquage de données, le polymorphisme, l'héritage, l'abstraction, etc.

Les fonctions

  • Ne supporte pas la surcharge de fonction et d'opérateur.
  • Impossible d'utiliser des fonctions à l'intérieur des structures
  • Ne supporte pas les fonctions virtuelles et les variables de référence
  • Ne supporte pas la gestion des exceptions
  • ne supporte pas les variables de référence
  • n'a pas de fonctionnalité d'espace de noms
  • peut appeler la fonction main () via d'autres fonctions
  • Prend en charge la surcharge des fonctions et des opérateurs.
  • Peut utiliser des fonctions à l'intérieur des structures
  • Prend en charge les fonctions virtuelles et les variables de référence.
  • Prend en charge la gestion des exceptions à l'aide du bloc try and catch. Les exceptions sont utilisées pour les erreurs "difficiles" qui rendent le code incorrect.
  • supporte les variables de référence
  • utilise la fonction NAMESPACE qui évite les collisions de noms.
  • ne peut pas appeler la fonction main () via d’autres fonctions.

Fonctions de mémoire

Utilise les fonctions calloc (), malloc () et free () pour allouer et désallouer de la mémoire.

Utilise les opérateurs new et delete dans le même but.

Encapsulation

Ne supporte pas. Les données et les fonctions sont des entités séparées et libres.

Prend en charge l'encapsulation. Les données et les fonctions sont encapsulées ensemble sous la forme d'un objet. La classe Objects fournit un modèle de la structure de l'objet.

Cacher des informations

C ne supporte pas la dissimulation d'informations. Ici, les données sont des entités libres et peuvent être manipulées par un code extérieur.

L'encapsulation masque les données pour garantir que les structures de données et les opérateurs sont utilisés comme prévu.

Les données

Prend en charge les types de données intégrés et primitifs.

Les données ne sont pas sécurisées car elles ne sont pas orientées objet

Prend en charge les types de données intégrés et définis par l'utilisateur.

Les données sont sécurisées (cachées) en C ++

Niveau

Langue de bas niveau

Langue de niveau moyen

Entrée sortie

Le langage 'C' utilise scanf () et printf () pour les entrées et les sorties.

Le langage 'C ++' utilise les opérateurs cin >> et cout << pour les entrées et les sorties.

Déclaration de variables

C oblige à déclarer toutes les variables en haut du programme.

En C ++, les variables peuvent être déclarées n'importe où dans le programme avant utilisation.

Déclaration multiple

Les déclarations multiples de variables globales sont autorisées.

Les déclarations multiples de variables globales ne sont pas autorisées.

Cartographie

Le mappage entre les données et la fonction est difficile et compliqué.

Le mappage entre les données et les fonctions peut être utilisé avec "Objets"

Programmation graphique

C prend en charge l'outil GTK pour la programmation d'interface graphique

C ++ supporte les outils Qt pour la programmation graphique

Héritage

L'héritage n'est pas possible en C

L'héritage est possible en C ++

Extension de fichier

A une extension de fichier .c

A une extension de fichier .cpp

Fichier d'en-tête par défaut

Le fichier d'en-tête par défaut utilisé en langage C est stdio.h

Le fichier d'en-tête par défaut utilisé dans C ++ est iosteam.h

Quelques exemples de différences entre C et C ++:

Exemples

C

C ++

Déclaration de variable

Seulement au sommet:

int i;

pour (i = 10; i <10; i ++)

N'importe où dans le programme:

pour (int i = 10; i <10; i ++)

Allocation de mémoire

Malloc:

int * x = malloc (sizeof (int));

int * x_array = malloc (sizeof (int) * 10);

Nouveau:

int * x = new int;

int * x_array = new int [10];

Libérer de la mémoire

Libre:

libre (x);

free (x_array);

Effacer:

supprimer x;

delete [] x_array;

Recommandé

Articles Connexes

  • comparaisons populaires: Différence entre les pointes des ongles et les ongles en acrylique

    Différence entre les pointes des ongles et les ongles en acrylique

    Principale différence: la pointe de l'ongle est la partie dorsale antérieure de l'ongle, tandis que l'ongle en acrylique est la forme artificielle de l'ongle entier. Les pointes des ongles sont la partie dorsale avant de tout ongle. Ils font partie des ongles naturels, qui sont décorés avec des peintures pour les ongles de couleur, des peintures pour les ongles en gel, des vernis à ongles et avec différents motifs. Les
  • comparaisons populaires: Différence entre Integer et Pointer

    Différence entre Integer et Pointer

    Différence de clé: les entiers font référence à tout type de données représentant un sous-ensemble d'entiers mathématiques. Les pointeurs sont des types de données dont la valeur fait référence à une autre valeur ou à des données stockées dans le système. Les nombres entiers et les pointeurs sont tous deux couramment utilisés dans les langages de programmation. Les deux termes
  • comparaisons populaires: Différence entre l'hébergement Web et l'hébergement de messagerie

    Différence entre l'hébergement Web et l'hébergement de messagerie

    Différence clé: l' hébergement Web fait référence à un service associé à l'hébergement Internet. Les entreprises qui offrent ce service fournissent leurs ordinateurs serveurs pour stocker les sites Web. Hébergement de messagerie fait référence à un service d'hébergement dans lequel les utilisateurs peuvent envoyer et stocker des courriels sur Internet. Il gère le t
  • comparaisons populaires: Différence entre le Kung Fu et les arts martiaux

    Différence entre le Kung Fu et les arts martiaux

    Principale différence: le terme «Kung Fu» englobe uniquement les formes d'art martial chinois, alors que le terme «arts martiaux» englobe les sports d'autodéfense chinois, japonais et coréens. Le kung-fu reflète les formes d'art martial chinois traditionnel, qui comprennent plusieurs autres formes d'art martial. Leurs
  • comparaisons populaires: Différence entre Nokia Lumia 925 et HTC One X +

    Différence entre Nokia Lumia 925 et HTC One X +

    Différence clé: Nokia a récemment annoncé son nouveau téléphone phare, le Nokia Lumia 925. Le téléphone est livré avec un écran tactile capacitif AMOLED de 4, 5 pouces qui occupe une bonne place à l'avant, avec haut-parleur et capteurs. L'écran capacitif de 4, 5 pouces a le même PureMotion HD +, ClearBlack que dans Lumia 920. Le HTC One
  • comparaisons populaires: Différence entre la 3G et le haut débit

    Différence entre la 3G et le haut débit

    Différence clé: la troisième génération, la troisième génération de la technologie de télécommunication mobile. Par ailleurs, le haut débit est une large bande de fréquences électromagnétiques. La 3G est un raccourci de la troisième génération, qui fait référence à une technologie sans fil avancée. Il présente des fon
  • comparaisons populaires: Différence entre l'acné et les éruptions cutanées

    Différence entre l'acné et les éruptions cutanées

    Différence clé: l' acné est un trouble de la peau caractérisé par la présence de boutons, de points noirs et de points blancs. Les éruptions cutanées peuvent être associées à une éruption temporaire ou à une décoloration de la peau. Il est généralement enflammé ou gonflé. L'acné et les éruptions cutanées sont liées à des problèmes de peau et peuvent être très dangereuses si elles s'avèrent graves. Beaucoup de gens raconten
  • comparaisons populaires: Différence entre Tally Silver et Gold

    Différence entre Tally Silver et Gold

    Différence clé: Tally Silver et Tally Gold font référence à deux éditions différentes de Tally ERP 9. Les éditions Silver ne peuvent être activées et utilisées que par le même ordinateur. D'autre part, ERP Gold permet l'activation sur un ordinateur, mais l'accès à partir de plusieurs ordinateurs illimités sur le même réseau. Tally Silver et
  • comparaisons populaires: Différence entre Sony Xperia ZR et HTC One

    Différence entre Sony Xperia ZR et HTC One

    Principale différence: le Sony Xperia ZR est essentiellement une version plus petite du produit phare, le Xperia Z, offrant une grande partie des mêmes fonctionnalités. Comme le Xperia Z, le nouveau Xperia ZR est résistant à l'eau et à la poussière. Cependant, contrairement au Z, le Xperia ZR fonctionne sous Android OS, v4.1 Jell

Choix De L'Éditeur

Différence entre Sony Xperia E et Karbonn Titanium S5

Principale différence: les Sony Xperia E et E-Dual sont deux téléphones d'entrée de gamme de Sony Mobile. Le téléphone est livré avec un capacitif 3, 5 TFT qui a une densité de pixels d’environ 165 ppp. Il est livré avec un processeur Snapdragon Qualcomm 1 GHz Cortex-A5, un processeur graphique Adreno 200 et 512 Mo de RAM. Le Karbon