Fonctions
Langage C++
H3078 v1 Article de référence

Fonctions
Langage C++

Auteur(s) : Manuel SERRANO

Date de publication : 10 août 2003 | Read in English

Logo Techniques de l'Ingenieur Cet article est réservé aux abonnés
Pour explorer cet article plus en profondeur Consulter l'extrait gratuit

Déjà abonné ?

Présentation

1 - Programmes C++

2 - Macroexpanseur CPP

  • 2.1 - Inclusion de fichiers sources
  • 2.2 - Macros et macrofonctions
  • 2.3 - Compilation conditionnelle
  • 2.4 - Identificateurs, chaînes de caractères et macros prédéfinies

3 - Types et typage

  • 3.1 - Types de base
  • 3.2 - Constructeurs de types
  • 3.3 - Conversions de types

4 - Expressions et instructions

5 - Fonctions

  • 5.1 - Déclarations et prototypes
  • 5.2 - Blocs d’activation et récursion
  • 5.3 - Fonctions inline
  • 5.4 - Passage des arguments
  • 5.5 - Surcharge
  • 5.6 - Fonction templates

6 - Objets

7 - Exceptions

  • 7.1 - Lever des exceptions
  • 7.2 - Intercepter les exceptions

8 - Interopérabilité avec C et les bibliothèques

9 - Conclusion

Sommaire

Présentation

RÉSUMÉ

Le langage C++ a été développé à partir de C en rajoutant une couche objet. Par rapport à C, assembleur portable qui couvre un très vaste champ d’applications, C++ est emprunt de méthodologies et de techniques issues du génie logiciel.  C++ reste difficile à maîtriser, mais un programmeur avec une bonne connaissance de ce langage a la possibilité d'écrire des programmes très efficaces.

Lire cet article issu d'une ressource documentaire complète, actualisée et validée par des comités scientifiques.

Lire l’article

Auteur(s)

  • Manuel SERRANO : Chargé de recherche à l’Institut national de recherche en informatique et en automatique - (INRIA)

INTRODUCTION

Le langage C++ est apparu au début des années 1980. Il a été conçu et développé par Bjarne Stroustrup dans les laboratoires d’AT&T. C++ est bâti au-dessus du langage C dont il présente un certain nombre d’extensions. La plus spectaculaire est probablement sa couche objet dont la conception a été fortement influencée par le langage Simula 67. Plus que les variations techniques, c’est surtout l’« esprit » des deux langages qui sépare C et C++. C est un assembleur portable qui couvre un très vaste champ d’applications. On peut écrire en C des programmes de très bas niveau, comme des contrôleurs de composants matériels spécialisés, mais aussi des programmes plus généralistes tels que des interfaces graphiques utilisateurs. C permet un contrôle très fin de la mémoire, ce qui constitue un atout fort du langage. Cela impose aussi discernement et compétence de la part des programmeurs car avec une telle capacité, tous les coups sont permis ! En revanche, C++ est emprunt de méthodologies et de techniques issues du génie logiciel. C++ a été voulu, et donc conçu, comme une alliance entre l’efficacité de C et la robustesse de langages de plus haut niveau tels que Ada ou Eiffel. Là où C prône la débrouillardise et un pragmatisme forcené, C++ met l’accent sur la pérennité et la fiabilité du logiciel. Cela se ressent, par exemple, dans l’incitation faite aux programmeurs d’utiliser des types abstraits de données (les classes) mais aussi dans un système de types plus strict que celui de C. La possibilité, pour un compilateur C++, d’engendrer du code presque aussi efficace que C a fortement influencé la conception du langage. Il en résulte que C++ est assez difficile à maîtriser, mais, en contrepartie, une bonne connaissance de ce langage permet d’écrire des programmes très efficaces. Cette caractéristique le distingue de bien d’autres langages de programmation évolués.

C++ a probablement bâti son succès sur C. Au moment où C++ est apparu, C était déjà bien implanté et l’engouement pour la programmation par objets émergeait. En se présentant comme une extension du langage C permettant la programmation par objets, il a attiré de nombreux programmeurs. Malgré l’apparition, depuis quelques années, de langages de plus haut niveau qui lui disputent sa popularité, C++ est encore, en ce début de siècle, un des langages généralistes les plus utilisés.

Logo Techniques de l'Ingenieur

Cet article est réservé aux abonnés.
Il vous reste 92 % à découvrir.

Pour explorer cet article Consulter l'extrait gratuit

Déjà abonné ?


DOI (Digital Object Identifier)

https://doi.org/10.51257/a-v1-h3078

Lecture en cours
Présentation

Article inclus dans l'offre

"Technologies logicielles Architectures des systèmes"

(236 articles)

Une base complète d’articles

Actualisée et enrichie d’articles validés par nos comités scientifiques.

Des contenus enrichis

Quiz, médias, tableaux, formules, vidéos, etc.

Des modules pratiques

Opérationnels et didactiques, pour garantir l'acquisition des compétences transverses.

Des avantages inclus

Un ensemble de services exclusifs en complément des ressources.

Voir l'offre

5. Fonctions

Les fonctions sont essentielles à C++. Ce sont elles qui expriment les traitements à exécuter sur les données. Les fonctions possèdent une définition et, de façon optionnelle, une ou plusieurs déclarations. Une fonction accepte des valeurs en paramètre et elle peut retourner un résultat. Le corps d’une fonction est un bloc, tel que défini au paragraphe 4.2.1. La valeur de retour d’une fonction est indiquée au moyen de l’instruction return expr.

5.1 Déclarations et prototypes

À la différence du langage C, C++ impose que toute fonction soit déclarée avant d’être utilisée. Une fonction peut être déclarée par sa définition ou simplement par son prototype. Le prototype d’une fonction indique le type des paramètres et le type de la valeur de retour de la fonction mais ne donne pas la définition de son corps. Syntaxiquement, le prototype d’une fonction ressemble à une définition mais le corps est simplement remplacé par un ;. Le prototype d’une fonction C++ diffère légèrement du prototype d’une fonction C. En C, il est permis de ne pas spécifier tous les paramètres d’une fonction. À ce titre, tous les paramètres omis sont considérés comme de type int. Par exemple, le prototype suivant int foo() ; indique qu’il existe une fonction nommée foo, qui retourne un entier. Aucune information sur les arguments n’est alors connue. Pour indiquer que la fonction foo n’attend aucun argument, il faut utiliser la syntaxe suivante int foo(void) ;. En C++, les prototypes sont complets. Ainsi int foo() ; indique que la fonction ne prend aucun paramètre.

HAUT DE PAGE

5.1.1 Fonctions d’arité variable

Il est parfois nécessaire de définir des fonctions qui attendent un nombre variable d’arguments. On parle alors de fonction d’arité variable. C++ permet de définir de telles fonctions au...

Logo Techniques de l'Ingenieur

Cet article est réservé aux abonnés.
Il vous reste 94 % à découvrir.

Pour explorer cet article Consulter l'extrait gratuit

Déjà abonné ?


Lecture en cours
Fonctions

Article inclus dans l'offre

"Technologies logicielles Architectures des systèmes"

(236 articles)

Une base complète d’articles

Actualisée et enrichie d’articles validés par nos comités scientifiques.

Des contenus enrichis

Quiz, médias, tableaux, formules, vidéos, etc.

Des modules pratiques

Opérationnels et didactiques, pour garantir l'acquisition des compétences transverses.

Des avantages inclus

Un ensemble de services exclusifs en complément des ressources.

Voir l'offre

Sommaire
Sommaire
Logo Techniques de l'Ingenieur

Cet article est réservé aux abonnés.
Il vous reste 93 % à découvrir.

Pour explorer cet article Consulter l'extrait gratuit

Déjà abonné ?


Article inclus dans l'offre

"Technologies logicielles Architectures des systèmes"

(236 articles)

Une base complète d’articles

Actualisée et enrichie d’articles validés par nos comités scientifiques.

Des contenus enrichis

Quiz, médias, tableaux, formules, vidéos, etc.

Des modules pratiques

Opérationnels et didactiques, pour garantir l'acquisition des compétences transverses.

Des avantages inclus

Un ensemble de services exclusifs en complément des ressources.

Voir l'offre

Ressources documentaires

Méthodes numériques de base - Analyse numérique

L’analyse numérique étudie les méthodes, appelées constructives, de résolution numérique des problèmes. ...

Introduction à MATLAB

Système interactif de programmation scientifique pour le calcul numérique et la visualisation graphique, ...

Introduction au parallélisme et aux architectures parallèles

Le parallélisme est dorénavant utilisé dans la majorité des architectures, des systèmes embarqués aux ...

Jeux d'instructions des processeurs

Les jeux d’instructions comprennent l’ensemble des instructions machine qui permettent à un processeur ...