Introduction à la conception objet et à C++

Les fonctions

Les fonctions C++ se déclarent et se définissent comme en C. Plusieurs caractéristiques ont cependant été ajoutées ou modifiées.
– Vérification stricte des types. Contrairement à C qui est un langage faiblement typé, et qui autorise ainsi l’utilisation d’une fonction avant sa définition ou sa déclaration1, C++ est un langage fortement typé. L’utilisation d’une fonction sans une déclaration ou une définition préalable conduit à une erreur de compilation. – Possibilité de définir des valeurs par défaut pour certains paramètres de fonctions. Certaines fonctions sont appelées avec des paramètres qui changent rarement. Considérons par exemple une fonction EcranInit qui est chargée d’initialiser un écran d’ordinateur (en mode caractères). Dans 90 % des cas, l’écran a les dimensions 24 lignes×80 caractères et doit être initialisé dans 99 % des cas avec le caractère ’ ’, qui provoque l’effacement de l’écran. Plutôt que de contraindre le programmeur à énumérer des paramètres qui sont généralement invariants, C++ offre la possibilité de donner des valeurs par défaut à certains paramètres lors de la déclaration de la fonction [PROG. 2.4]. Quelques remarques sur cette fonctionnalité: 1. Une fonction peut définir des valeurs par défaut pour tous ses paramètres ou seulement pour une partie. Les paramètres acceptant des valeurs par défaut doivent se trouver après les paramètres sans valeur par défaut dans la liste des paramètres acceptés par une fonction. 2. Les valeurs par défaut de chaque paramètre ne peuvent être mentionnées qu’une seule fois parmi les définitions / déclarations d’une fonction. Ainsi, par convention, ces valeurs sont généralement mentionnées dans la déclaration de la fonction et pas dans sa définition (donc dans le .H et pas dans le .C). 3. L’ordre de déclaration des paramètres est important: dans l’exemple [PROG. 2.4] il est en effet impossible de donner une valeur à col sans en donner une auparavant à lig. D’une façon générale, il faut donc positionner parmi les paramètres ayant des valeurs par défaut en premier ceux qui ont le plus de chances d’être modifiés.
1. La fonction en question est alors supposée par défaut renvoyer un entier (type int).
void EcranInit(Ecran ecran, int lig = 24, int col = 80, char fond = ’ ’);
void EcranInit(Ecran ecran, int lig, int col, char fond)
{ 5 … 6 }
int main()
{
Ecran ec;
EcranInit(ec); // Éq. à : EcranInit(ecran, 24, 80, ’ ’);
EcranInit(ec, 26); // Éq. à : EcranInit(ecran, 26, 80, ’ ’);
EcranInit(ec, 26, 92); // Éq. à : EcranInit(ecran, 26, 92, ’ ’);
EcranInit(ec, 26, 92, ’+’);
}

Cours gratuitTélécharger le cours complet

Télécharger aussi :

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *