La Programmation

Tutoriel C++ pour débutants

30 octobre 2021

Table des matières

Qu'est-ce que le C++ ?

C++ est un langage multiplateforme utilisé pour créer des applications hautes performances. Bjarne Stroustrup l'a développé comme une extension du langage C. C++ donne aux programmeurs le contrôle des ressources système et de la mémoire. Le langage a été mis à jour trois fois de manière significative en 2011, 2014 et 2017 en C++11, C++14 et C++17.

Pourquoi utiliser C++

  • C++ est l'un des langages de programmation les plus populaires.
  • C++ peut être trouvé dans les systèmes d'exploitation, les interfaces graphiques et les systèmes embarqués.
  • C'est un langage de programmation orienté objet qui donne une structure claire aux programmes et permet de réutiliser le code, réduisant ainsi les coûts de développement.
  • Il est portable et peut être utilisé pour développer des applications adaptables à plusieurs plateformes.
  • Comme C++ est proche de C# et Java , cela permet aux programmeurs de passer facilement au C++ ou vice versa.

Caractéristiques

    Simple: C++ est un langage simple car il fournit une approche structurée d'un riche ensemble de fonctions, de types de données, etc.Portable: Contrairement au langage d'assemblage, les programmes c sont exécutés sur de nombreuses machines avec peu ou pas de changement. Mais ce n'est pas indépendant de la plate-forme.Langage de programmation de niveau intermédiaire: C++ est utilisé pour faire de la programmation de bas niveau. Il est utilisé pour développer des applications telles que le noyau, le pilote, etc. Il prend également en charge la fonctionnalité du langage de haut niveau.Langage de programmation structuré: C++ est un langage de programmation structuré car vous pouvez diviser le programme en plusieurs parties à l'aide de fonctions.Bibliothèque riche: C++ fournit des fonctions intégrées qui accélèrent le développement.Gestion de la mémoire: Il vous offre la fonctionnalité d'allocation de mémoire dynamique. Vous pouvez libérer la mémoire allouée en appelant la fonction free().Vitesse: Le temps de compilation et d'exécution du langage C++ est rapide.Aiguille: C++ offre la fonctionnalité des pointeurs. Vous pouvez interagir directement avec la mémoire en utilisant des pointeurs.Récursivité: En C++, vous pouvez appeler la fonction dans la fonction. Il permet la réutilisation du code pour chaque fonction.Extensible: Le langage C++ est extensible car il peut adopter rapidement de nouvelles fonctionnalités.Orienté objet: C++ est un langage de programmation orienté objet. La POO facilite la maintenance et le développement, alors qu'en langage de programmation orienté Procédure, il n'est pas facile de gérer si le code grandit au fur et à mesure que le projet la taille augmente.Basé sur un compilateur: C'est un langage de programmation basé sur un compilateur. Tout d'abord, vous devez compiler le programme à l'aide d'un compilateur, puis vous pouvez exécuter le programme.

Configuration de l'environnement local

Ce serait bien si vous aviez le logiciel suivant sur votre ordinateur.

    Compilateur C++

Il s'agit d'un véritable compilateur C++, qui sera utilisé pour compiler votre code source dans le programme exécutable final. La plupart des compilateurs C++ ne se soucient pas de l'extension que vous donnez à votre code source. Le compilateur le plus fréquemment utilisé est le compilateur GNU C/C++.

    Éditeur de texte

Il est utilisé par le logiciel pour taper. Les exemples incluent les commandes Windows Notepad, OS Edit, Short, Epsilon, EMACS et Vim ou VI. Les fichiers que vous générez avec l'éditeur sont appelés fichiers source et les fichiers C++ sont appelés .cpp, .cp ou .c. Pour commencer votre programmation C++, un éditeur de texte doit être en place.

    Syntaxe de base

Voyons maintenant ce que signifient une classe, un objet, des méthodes et des variables d'instance.

    Objet− Les objets ont des états et des comportements. Exemple : Un chat a des conditions - couleur, nom, race et actions - remuer, miauler, manger. Un objet est une instance de la classe.Classer− Une classe est définie comme un plan qui décrit les comportements/états qu'un objet de son type prend en charge.Méthodes− Une méthode est un comportement. Une classe peut contenir plusieurs méthodes. Dans les méthodes où la logique est écrite, les données sont manipulées et les actions sont exécutées.Variables d'instance− Il existe une collection unique de variables d'instance dans chaque objet. La condition d'une entité est générée par les valeurs affectées à ces exemples de variables.

EXEMPLE

|__+_|

SORTIR

|__+_|

Regardons les différentes parties du programme mentionnées ci-dessus −

  • Il nécessite un en-tête.
  • Utilisez l'espace de noms std ; pour avertir le compilateur d'utiliser l'espace de noms std.
  • La ligne int main() est la caractéristique principale où l'exécution du programme commence.
  • La ligne suivante coupe à<< Hello World; the word Hello World is reflected on the keyboard.
  • La ligne suivante renvoie 0 ; la fonction main() se termine.

Entrée/sortie de base C++

L'opération d'E/S C++ utilise le concept de flux. Le flux est la séquence d'octets ou le flux de données. Cela rend les performances rapides.

Si des octets circulent de la mémoire principale vers un périphérique tel qu'une imprimante, un écran d'affichage ou une connexion réseau, etc., cela s'appelle opération de sortie.

Si des octets circulent d'un périphérique tel qu'une imprimante, un écran d'affichage, une connexion réseau, etc., vers la mémoire principale, cela s'appelle une opération de saisie.

Flux de sortie standard (cout)

le cout est un objet prédéfini de l'ostream classer. Il est connecté au périphérique de sortie, qui est généralement un écran d'affichage. Le cout est utilisé pour se joindre à l'opérateur d'insertion de flux pour afficher la sortie sur une console

EXEMPLE

|__+_|

SORTIR

|__+_|

Flux d'entrée standard (cin)

le Gin est un objet prédéfini. Il est connecté au périphérique d'entrée, qui est généralement un clavier. Le cin est utilisé pour joindre l'opérateur d'extraction de flux (>>) afin de lire l'entrée de la console.

EXEMPLE

|__+_|

SORTIR

|__+_|

Ligne de fin standard (endl)

le fin est un objet prédéfini de la classe. Il est utilisé pour insérer des caractères de nouvelle ligne et vide le flux.

EXEMPLE

|__+_|

SORTIR

|__+_|

Variables C++

Une variable est le nom d'un emplacement mémoire. Il est utilisé pour stocker des données. La valeur peut être modifiée et elle est réutilisée plusieurs fois. C'est un moyen de représenter l'emplacement de la mémoire à travers un symbole pour être facilement identifié. Une variable peut contenir des lettres, des traits de soulignement et des chiffres. Un nom de variable ne peut commencer que par un caractère alphabétique et un trait de soulignement. Il ne peut pas commencer par un chiffre.

Aucun espace blanc n'est autorisé dans le nom de la variable.

Un nom de variable ne doit pas être un mot ou un mot-clé réservé, par exemple char, float, etc.

Noms de variables valides :

  • int un ;
  • entier _ab ;
  • entier a30 ;

Noms de variables non valides :

  • int 4 ;
  • intxy;
  • entier double ;

Identificateurs C++

Un identificateur C++ est utilisé pour identifier une variable, une fonction, une classe, un module ou tout autre élément défini par l'utilisateur. Il commence par A à Z ou a à z ou un trait de soulignement (_), qui est suivi de zéro ou plusieurs lettres et de 0 à 9. C++ n'autorise pas les ponctuations telles que @, $ et % dans les identificateurs. C'est un langage de programmation sensible à la casse. Ainsi, la main-d'œuvre et la main-d'œuvre sont deux identifiants différents en C++.

Types de données C++

TaperMots clés
Personnagecarboniser
booléenbourdonner
Point flottantflotter
Double virgule flottantedouble
Entierentier
Sans valeurannuler
Caractère largewchar_t
Taper Largeur de bit typique Gamme typique
carboniser1 octet-127 à 127 ou 0 à 255
caractère non signé1 octet0 à 255
caractère signé1 octet-127 à 127
wchar_t2 ou 4 octets1 caractère large
entier4 octets-2147483648 à 2147483647
entier non signé4 octets0 à 4294967295
signé en entier4 octets-2147483648 à 2147483647
entier court2 octets-32768 à 32767
flotter4 octets
entier court non signé2 octets0 à 65 535
signé int court2 octets-32768 à 32767
entier long8 octets-2 147 483 648 à 2 147 483 647
signé int long8 octetsidentique à long int
entier long non signé8 octets0 à 4 294 967 295
long long int8 octets-(2^63) à (2^63)-1
entier long long non signé8 octets0 à 18 446 744 073 709 551 615
double8 octets
longue double12 octets

Constantes/littéraux C++

Les constantes font référence aux valeurs fixes que le programme peut modifier et sont appelées littéraux.

Les constantes peuvent être de n'importe quel type de données brutes et sont divisées en nombres entiers, caractères, nombres à virgule flottante, chaînes et valeurs booléennes.

Littéraux entiers

Un entier littéral est une constante décimale, octale ou hexadécimale.

Un littéral entier a un suffixe qui est une combinaison de L et U, pour long et non signé, respectivement. Le suffixe peut être en minuscules ou en majuscules et peut être dans n'importe quel ordre.

Par exemple : 212, 215u, 0xFeeL, 078, 032UU

Littéraux à virgule flottante

Un littéral à virgule flottante a une partie entière, une partie fractionnaire, un point décimal et une partie exposant. Vous pouvez représenter les littéraux à virgule flottante sous forme décimale ou sous forme exponentielle.

Lors de la représentation à l'aide de la forme décimale, vous devez inclure la virgule décimale, l'exposant ou les deux. Tout en utilisant la forme exponentielle, vous devez avoir la partie fractionnaire, la partie entière ou les deux. L'exposant signé est introduit par E ou e.

Littéraux booléens

Il y a deux littéraux booléens

  • Une valeur true représentant true.
  • Une valeur de false représentant false.

Caractères littéraux

Les littéraux de caractères sont entourés de guillemets simples. Si le littéral commence par L, il s'agit d'un littéral à caractères larges et doit être stocké dans une variable de type wchar_t. Sinon, il s'agit d'un littéral de caractère étroit et est stocké dans une simple variable de type char.

Séquence d'échappement Sens
\ personnage
'' personnage
personnage
 ?? personnage
àAlerte ou sonnerie
Retour arrière
FSaut de formulaire
Nouvelle ligne
Retour chariot
Onglet horizontal
vOnglet vertical
oooNombre octal de un à trois chiffres
xhh . . .Nombre hexadécimal d'un ou plusieurs chiffres

Classes de stockage C++

La classe de stockage automatique

C'est une classe de stockage par défaut pour toutes les variables locales.

SYNTAXE

|__+_|

La classe de stockage du registre

Ils sont utilisés pour définir des variables locales qui sont stockées dans un registre au lieu de la RAM. Cela signifie que la variable a une taille maximale égale à la taille du registre et que l'opérateur '&' ne peut pas lui être appliqué.

SYNTAXE

|__+_|

La classe de stockage statique

Il indique au compilateur de conserver la variable locale existante pendant le programme au lieu de la créer et de la détruire. Ainsi, rendre les variables locales statiques leur permet de conserver leurs valeurs entre les appels de fonction.

La classe de stockage externe

Il est utilisé pour donner la référence d'une variable globale qui est visible pour chaque fichier programme. Lorsque vous utilisez « extern », la variable ne peut pas être initialisée.

La classe de stockage mutable

Le spécificateur mutable s'applique aux objets de classe. Il propose à un membre d'un objet de remplacer la fonction membre const. Autrement dit, un membre mutable peut être modifié par une fonction membre const.

Types de modificateurs C++

C++ propose les types de données char, int et double pour avoir des modificateurs qui les précèdent. Un modificateur est utilisé pour modifier la signification du type de base afin qu'il corresponde plus précisément aux besoins de diverses situations.

Les modificateurs de type de données sont mentionnés ci-dessous -

  • signé
  • non signé
  • long
  • court

Les modificateurs signé, non signé, long et court sont appliqués aux types de base entiers. De plus, signé et non signé sont appliqués à char, et long est appliqué à double.

Les modificateurs signés et non signés sont utilisés comme préfixes des modificateurs longs ou courts.

Types de qualificatifs

    constante: Objets de type constante ne peut pas être modifié par le programme pendant l'exécution.volatil: The modifier volatil indique au compilateur que la valeur de la variable peut être modifiée d'une manière non explicitement spécifiée par le programme.restreindre: Un pointeur qualifié par restreindre est le seul moyen d'accéder à l'objet vers lequel il pointe. Le C99 ajoute un nouveau type de qualificatif appelé restrict.

EXEMPLE

|__+_|

SORTIR

|__+_|

Opérateurs en C++

Un opérateur est un symbole qui aide le compilateur à effectuer des manipulations mathématiques ou logiques spécifiques. C++ a divers opérateurs intégrés et offre les types d'opérateurs suivants -

  • Opérateur arithmétique
  • Opérateur logique
  • Opérateur au niveau du bit
  • Opérateur d'assignation
  • Opérateur relationnel
  • Opérateur divers

Opérateur arithmétique

Les opérateurs arithmétiques ne sont rien d'autre que les opérateurs utilisés pour effectuer des opérations arithmétiques entre des variables ou deux valeurs.

Les opérateurs La description Syntaxe
+Ajoute deux opérandesa+b
*Multiplie deux opérandesun B
Soustrait deux opérandesun B
/Divise le premier opérande par le secondun B
%Renvoie le reste lorsque le premier opérande est divisé par le secondun B
++Il augmente la valeur entière de una++
Il diminue la valeur entière d'unà-

Opérateur logique

Les opérateurs logiques en C++ combinent les valeurs vraies ou fausses des variables afin que vous puissiez déterminer leur valeur de vérité résultante.

Les opérateurs La description Syntaxe
Ou (||)Vrai si l'un des opérandes est vrai(A || B) est vrai.
Et (&&)Vrai si les deux opérandes sont vrais(A && B) est faux.
Pas (!)Si une condition est vraie, alors l'opérateur NON logique deviendra faux.!(A && B) est vrai.

Opérateur au niveau du bit

En C++, les opérateurs au niveau du bit effectuent des calculs au niveau du bit sur des entiers. Opérateur binaire : renvoie 1 si les deux bits sont 1 sinon 0. Exemple : a = 10 = 1010 (binaire) b = 4 = 0100 (binaire a & b = 1010 & 0100 = 0000 = 0 (décimal) Opérateur binaire ou : renvoie 1 si l'un des bits est 1 sinon 0.

Les opérateurs La description Syntaxe
>>Décalage binaire à droite x>>x>>
<< Décalage binaire à gaucheX<<
^XOR binairex ^ y
&ET binairex et y
|OU binairex | Oui
~NON binaire~x

Opérateur d'assignation

Les opérateurs d'affectation attribuent des valeurs aux variables. a = 5 est un opérateur d'affectation qui définit la valeur 5 à droite de la variable an à gauche.

Les opérateurs La description Syntaxe
=Affectation des valeurs de l'expression du côté droit à l'opérande du côté gauche.un=b+c
+=Ajoutez l'opérande de droite à l'opérande de gauche, puis affectez-le à l'opérande de gauche.a+=b a=a+b
-=Soustrayez l'opérande de droite de l'opérande de gauche, puis affectez-le à l'opérande de gauche.a-=b a=a-b
/=Divisez l'opérande de gauche par l'opérande de droite, puis affectez-le à l'opérande de gauche.a/=b a=a/b
%=Prenez le module en utilisant les opérandes gauche et droit et affectez le résultat à l'opérande gauche.a%=b a=a%b
*=Calculez la valeur de l'exposant à l'aide d'opérandes et attribuez une valeur à l'opérande de gauche.une*=b une=a*b
&=Effectue un AND au niveau du bit sur l'opérande et attribue une valeur à l'opérande de gauche.a&=b a=a&b
|=Effectue un OU au niveau du bit sur l'opérande et attribue une valeur à l'opérande de gauche.une|=b une=a|b
^=Effectue un OU au niveau du bit sur l'opérande et attribue une valeur à l'opérande de gauche.un ^ = b un = un ^ b
>>=Effectuez un décalage droit au niveau du bit sur l'opérande et attribuez une valeur à l'opérande gauche.a>>=b a=a>>b
<<=Effectue un décalage gauche au niveau du bit sur l'opérande et attribue une valeur à l'opérande gauche.à<<= b a= a << b

Opérateur relationnel

Les opérateurs relationnels sont les opérateurs utilisés pour comparer deux valeurs ou objets.

Les opérateurs La description Syntaxe
>Plus grand quex > y
<Moins queX
==Égalx == y
!=Inégalx != y
>=Plus grand ou égal àx >= y
<= Inférieur ou égal àX<= y

Opérateurs divers

Opérateur La description
État? X : OSi la condition est vraie, alors elle renvoie la valeur de X sinon renvoie la valeur de Y.
,Il provoque l'exécution d'une séquence d'opérations. La valeur de la virgule est la valeur de la dernière expression de la liste séparée par une virgule.
taille deIl renvoie la taille d'une variable. Par exemple, sizeof(a), où 'a' est un entier et renverra 4.
*C'est un pointeur vers une variable. Par exemple *var; pointera vers une variable var.
JeterIl convertit un type de données en un autre.
. (point) et -> (flèche)Ils sont utilisés pour référencer des membres individuels de classes, de structures et d'unions.
&Il renvoie l'adresse de la variable.

Boucles C++

pour la boucle

La boucle for C++ est utilisée pour itérer plusieurs fois une partie du programme. Si le nombre d'itérations est fixe, il est recommandé d'utiliser la boucle for plutôt que les boucles while ou do-while.

La boucle for C++ est identique à C/C#. Nous pouvons initialiser des variables, vérifier la condition et incrémenter/décrémenter la valeur.

SYNTAXE

|__+_|

EXEMPLE

|__+_|

SORTIR

|__+_|

Boucle For imbriquée

En C++, vous pouvez utiliser une boucle for dans une autre boucle for. Elle est connue sous le nom de boucle for imbriquée. La boucle interne est entièrement exécutée lorsque la boucle externe est exécutée une fois. Ainsi, si la boucle externe et la boucle interne sont exécutées quatre fois, la boucle interne sera exécutée quatre fois pour chaque boucle externe, soit un total de 16 fois.

EXEMPLE

|__+_|

SORTIR

|__+_|

Boucle tant que

En C++, la boucle while est utilisée pour itérer plusieurs fois une partie du programme. Si le nombre d'itérations n'est pas fixe, il est recommandé d'utiliser une boucle while plutôt que for.

SYNTAXE

|__+_|

EXEMPLE

|__+_|

SORTIR

|__+_|

Boucle While imbriquée

En C++, vous pouvez utiliser une boucle while à l'intérieur d'une autre boucle while ; il s'agit d'une boucle while imbriquée. La boucle while imbriquée est exécutée lorsque la boucle externe est exécutée une fois.

EXEMPLE

|__+_|

SORTIR

|__+_|

Boucle Do-while

La boucle do-while C++ est utilisée pour itérer plusieurs fois une partie du programme. Si le nombre d'itérations n'est pas fixe et que vous devez exécuter la boucle au moins une fois, il est recommandé d'utiliser une boucle do-while.

La boucle do-while C++ est exécutée au moins une fois car la condition est vérifiée après le corps de la boucle.

SYNTAXE

|__+_|

EXEMPLE

|__+_|

SORTIR

|__+_|

Boucle Do-While imbriquée

En C++, si vous utilisez une boucle do-while à l'intérieur d'une autre boucle do-while, on parle de boucle do-while imbriquée. La boucle do-while imbriquée est entièrement exécutée pour chaque boucle do-while externe.

EXEMPLE

|__+_|

SORTIR

|__+_|

Prise de décision Déclarations

Il y a des situations dans la vraie vie où vous devez prendre des décisions, et sur la base de ces décisions, vous décidez de ce que vous devez faire ensuite. Des problèmes similaires surviennent également dans la programmation lorsque vous devez prendre des décisions, et sur la base de ces décisions, vous exécuterez le prochain bloc de code.

Les instructions de prise de décision dans les langages de programmation décident de la direction du flux d'exécution du programme. Les instructions de prise de décision disponibles en C++ sont :

  • si déclaration
  • déclarations if..else
  • instructions if imbriquées
  • échelle si-autre-si
  • Déclarations de saut :
    • Pause
    • Continuez
    • aller à
    • retourner

si déclaration

si la déclaration est une simple déclaration de prise de décision. Il est utilisé pour décider si le bloc d'instructions sera exécuté ou non. Si la condition est vraie, alors un bloc d'instructions est exécuté sinon non.

SYNTAXE

|__+_|

Ici, conditions après évaluation sera vrai ou faux. si l'instruction accepte les valeurs booléennes.

EXEMPLE

|__+_|

SORTIR

|__+_|

si sinon déclaration

L'instruction if indique que si une condition est vraie, elle exécutera le bloc d'instructions et si la condition est fausse, elle ne s'exécutera pas. Vous pouvez utiliser l'instruction else avec l'instruction if pour exécuter un bloc de code lorsque la condition est fausse.

SYNTAXE

|__+_|

EXEMPLE

|__+_|

SORTIR

|__+_|

Instructions if imbriquées

Un if imbriqué en C++ est une instruction if qui cible une autre instruction if. Les instructions if imbriquées signifient qu'une instruction if est à l'intérieur d'une autre instruction if. Oui, C et C++ nous proposent des instructions if imbriquées dans des instructions if, c'est-à-dire que vous pouvez placer une instruction if dans une autre instruction if.

SYNTAXE

|__+_|

EXEMPLE

|__+_|

SORTIR

|__+_|

échelle si-autre-si

Un utilisateur peut choisir parmi diverses options. Les instructions if sont exécutées de haut en bas. Dès que les conditions contrôlent si est vrai, l'instruction associée à celle-ci est exécutée et le reste de l'échelle else-if est terminé. Si les conditions ne sont pas vraies, la dernière et dernière instruction sera exécutée.

SYNTAXE

|__+_|

EXEMPLE

|__+_|

SORTIR

|__+_|

Instructions de saut

Casser

Cette instruction est utilisée pour terminer la boucle. Dès que l'instruction break est rencontrée à l'intérieur d'une boucle, les itérations de la boucle s'arrêtent là et le contrôle revient immédiatement à la première instruction après la boucle.

SYNTAXE
Casser;

Les instructions break sont utilisées dans des situations où nous ne sommes pas sûrs du nombre réel d'itérations pour la boucle ou lorsque nous terminons la boucle en fonction d'une condition.

EXEMPLE

|__+_|

SORTIR

|__+_|

Continuez

L'instruction continue est l'opposée de l'instruction break ; au lieu de terminer la boucle, il force l'itération suivante de la boucle.

L'instruction continue force la boucle à exécuter l'itération suivante. Lorsque l'instruction continue est exécutée, le code à l'intérieur de la boucle suivant l'instruction continue est ignoré et l'itération suivante commence.

SYNTAXE

|__+_|

EXEMPLE

|__+_|

SORTIR

|__+_|

Aller à

L'instruction goto en C++ fait référence à une instruction de saut inconditionnelle utilisée pour sauter d'un point à un autre dans une fonction.

SYNTAXE

|__+_|

EXEMPLE

|__+_|

SORTIR

|__+_|

Retourner

Le retour en C++ renvoie le flux de l'exécution à la fonction. Cette instruction n'a pas besoin d'instructions conditionnelles. Une fois l'instruction exécutée, le déroulement du programme s'arrête immédiatement et renvoie le contrôle d'où il a été appelé. L'instruction return peut ou non renvoyer quoi que ce soit pour une fonction void, mais une valeur de retour doit être renvoyée pour une fonction non void.

SYNTAXE

|__+_|

EXEMPLE

|__+_|

SORTIR

|__+_|

Fonctions C++

Une fonction fait référence à un groupe d'instructions qui prend l'entrée, la traite et renvoie la sortie. L'objectif de la fonction est de combiner des tâches qui sont faites encore et encore. Si vous avez plusieurs entrées, vous n'avez pas besoin d'écrire à nouveau le même code. Vous pouvez appeler la fonction avec un ensemble de données différent appelé paramètres.

Le programme C++ a au moins une fonction, la fonction main().

Définir une fonction

Une définition de fonction en C++ se compose d'un en-tête de fonction et d'un corps.

    Type de retour− Il peut renvoyer une valeur. Certaines fonctions effectuent les opérations sans renvoyer de valeur. En cela, le return_type est le mot-clé annuler .Nom de la fonction− C'est le nom réel de la fonction. Le nom de la fonction et la liste constituent ensemble la signature de la fonction.Paramètres− Un paramètre est comme un espace réservé. Lorsqu'une fonction est invoquée, vous transmettez la valeur au paramètre. Cette valeur est appelée paramètre ou argument réel. La liste des paramètres fait référence à l'ordre, au type et à un certain nombre de paramètres d'une fonction.Fonction Corps− Le corps contient une collection d'instructions qui définissent ce que fait la fonction.

EXEMPLE

|__+_|

Déclarer une fonction

En C++, les fonctions doivent être déclarées avant d'être utilisées. Vous pouvez déclarer une fonction en fournissant sa valeur de retour, son nom et les types de ses arguments. Les termes des arguments sont facultatifs. Une définition de fonction compte comme une déclaration de fonction.

EXEMPLE

|__+_|

Appel d'une fonction

Lorsque vous créez une fonction C++, vous définissez ce que la fonction doit faire. Pour utiliser une fonction, vous devez appeler ou invoquer cette fonction.

Lorsque le programme appelle une fonction, le contrôle du programme est transféré à la fonction appelée. Une fonction appelée exécute une tâche définie, et lorsque son instruction return est exécutée ou lorsque son accolade fermante de fin de fonction est atteinte, elle rend le contrôle du programme au programme principal.

EXEMPLE

|__+_|

Arguments de la fonction

Si une fonction utilise des arguments, elle doit déclarer des variables qui acceptent les valeurs des arguments. Ces variables sont connues sous le nom de paramètres formels de la fonction.

    Appel par valeur: Il copie la valeur réelle de l'argument dans le paramètre formel de la fonction. Les modifications apportées au paramètre à l'intérieur de la fonction n'affectent pas l'argument.Appel par pointeur: Il copie l'adresse de l'argument dans le paramètre formel. Dans cette fonction, l'adresse est utilisée pour accéder à l'argument utilisé dans l'appel. Cela signifie que les modifications apportées au paramètre affectent l'argument.Appel par référence: Il copie la référence d'un argument dans le paramètre formel. Dans cette fonction, la référence est utilisée pour accéder à l'argument utilisé dans l'appel. Cela signifie que les modifications apportées au paramètre affectent l'argument.

Numéros C++

Habituellement, lorsque nous travaillons avec des nombres, nous utilisons des types de données primitifs tels que int, short, long, float, double, etc. Le nombre de types de données, leurs valeurs possibles et les plages de nombres ont été expliqués lors de la discussion sur les types de données C++.

EXEMPLE

|__+_|

SORTIR

|__+_|

Opérateurs mathématiques en C++

OUI NON Les fonctions But
un double péché(double);Il prend un angle (comme un double) et renvoie le sinus.
deux double cos(double);Il prend un angle (comme un double) et renvoie le cosinus.
3 double bronzage (double);Il prend un angle (comme un double) et renvoie la tangente.
4 double pow(double, double);Le premier est un nombre que vous souhaitez augmenter et le second est la puissance que vous souhaitez augmenter.
5 journal double(double);Il prend un nombre et renvoie le logarithme naturel de ce nombre.
6 double hypoth(double, double);Si vous lui passez la longueur de deux côtés d'un triangle rectangle, cela vous renverra la longueur de l'hypoténuse.
sept double sqrt(double);Vous passez un nombre à la fonction et cela vous donne la racine carrée.
8 entier abs(entier);Il renvoie la valeur absolue d'un entier qui lui est passé.
9 double étage(double);Recherche l'entier inférieur ou égal à l'argument qui lui est passé.
dix double fabs(double);Il renvoie la valeur absolue de tout nombre décimal qui lui est transmis.

EXEMPLE

|__+_|

SORTIR

|__+_|

Tableaux C++

Un tableau en C++ est une collection d'éléments stockés à des emplacements de mémoire contigus, et les éléments peuvent être consultés de manière aléatoire à l'aide des indices d'un tableau. Ils sont utilisés pour stocker des éléments similaires car le type de données doit être le même pour tous les éléments. Ils peuvent stocker des types de données primitifs tels que char, int, float, double, etc. Pour y ajouter, un tableau en C++ peut stocker des types de données dérivés tels que les structures, les pointeurs, etc. Ci-dessous est la représentation pittoresque d'un tableau .

Déclaration de tableau

SYNTAXE

|__+_|

EXEMPLE

|__+_|

Ici,

  • int – un type d'élément à stocker
  • y – le nom du tableau
  • 4 – la taille du tableau

Accéder aux éléments du tableau

Chaque élément d'un tableau est relié à un nombre. Le nombre est appelé un index de tableau. Vous pouvez accéder aux éléments d'un tableau en utilisant les indices.

SYNTAXE

|__+_|

EXEMPLE

|__+_|

Voici quelques concepts importants des tableaux C++

    Tableaux multidimensionnels: Un tableau à deux dimensions est la forme la plus simple du tableau multidimensionnel.Pointeur vers un tableau: Vous allez générer un pointeur vers le premier élément d'un tableau en mentionnant le nom du tableau sans l'index.Passer des tableaux aux fonctions: Vous passerez à la fonction un pointeur vers un tableau en spécifiant le nom du tableau sans index.Renvoyer un tableau à partir de fonctions: C++ permet à la fonction de renvoyer un tableau.

Chaînes C++

C'est une collection de personnages. Il existe deux types de chaînes utilisées dans le langage de programmation C++ :

  • Chaînes qui sont des objets de la classe de chaîne
  • Cordes en C

La classe de chaîne

La bibliothèque C++ fournit une chaîne de caractères type de classe qui prend en charge toutes les opérations mentionnées ci-dessus, ainsi que beaucoup plus de fonctionnalités.

EXEMPLE

|__+_|

SORTIR

|__+_|

Cordes en Do

Cette chaîne provient du langage C et est prise en charge dans C++. Cette chaîne est un tableau unidimensionnel de caractères qui se termine par un caractère nul ‘’. Ainsi, la chaîne terminée par un caractère nul contient les caractères qui composent la chaîne suivis d'un caractère nul.

EXEMPLE

|__+_|

SORTIR

|__+_|

Peu de fonctions qui manipulent des chaînes à terminaison nulle

    strcpy(s1, s2);

Il copie la chaîne s2 dans la chaîne s1.

    strcat(s1, s2);

Il concatène la chaîne s2 à la fin de la chaîne s1.

    strstr(s1, s2);

Elle renvoie un pointeur sur l'occurrence de la chaîne s2 dans la chaîne s1.

    strlen(s1);

Il renvoie la longueur de la chaîne s1.

    strcmp(s1, s2);

Il renvoie 0 si s1 et s2 sont identiques ; inférieur à 0 si s1s2.

    strchr(s1, ch);

Elle renvoie le pointeur sur l'occurrence du caractère ch dans la chaîne s1.

Pointeurs C++

Les pointeurs sont une représentation des adresses. Ils permettent aux programmes de simuler l'appel par référence et de créer et manipuler des structures de données dynamiques.

SYNTAXE

|__+_|

Comment utiliser un pointeur ?

  • Tout d'abord, définissez une variable de pointeur
  • Attribuez maintenant l'adresse de la variable à un pointeur à l'aide de (&) qui renvoie l'adresse de cette variable.
  • Accéder aux valeurs stockées dans l'adresse par (*) qui renvoie la valeur de la variable située à l'adresse spécifiée par son opérande.

Quelques notions de pointeurs

    Pointeurs nuls: C'est une constante avec une valeur de zéro définie dans diverses bibliothèques standard.Arithmétique du pointeur: Quatre opérateurs arithmétiques peuvent être utilisés sur les pointeurs : ++, –, +, –Pointeurs vs tableaux: Il existe un lien étroit entre les pointeurs et les tableaux.Tableau de pointeurs: Vous pouvez définir des tableaux pour contenir plusieurs pointeurs.Pointeur à pointeur: C++ vous propose d'avoir un pointeur sur un pointeur et ainsi de suite.Passer des pointeurs à des fonctions: Les passages par référence ou par adresse permettent tous deux de modifier l'instruction donnée dans la fonction appelante par la fonction appelée.Pointeur de retour des fonctions: C++ propose une fonction pour renvoyer un pointeur vers une variable locale, une variable statique et également une mémoire allouée dynamiquement.

EXEMPLE

|__+_|

SORTIR

|__+_|

Références C++

Une variable de référence est un nom pour une variable déjà existante. Une fois qu'une référence est initialisée, le nom de la variable ou le nom de la référence peut être utilisé pour faire référence à la variable.

EXEMPLE

|__+_|

SORTIR

|__+_|

Date et heure C++

La bibliothèque C++ ne fournit pas de type de date approprié. Il hérite des structures et des fonctions de manipulation de la date et de l'heure de C. Pour accéder aux fonctions et structures liées à la date et à l'heure, vous devez inclure le fichier d'en-tête dans votre programme C++.

Il existe quatre types liés au temps : clock_t, time_t, size_t et tm. Les types - clock_t, size_t et time_t sont capables de représenter l'heure et la date du système sous la forme d'un nombre entier.

EXEMPLE

|__+_|

Quelques fonctions importantes

    temps_t temps(temps_t *temps);

Il renvoie l'heure actuelle du calendrier en quelques secondes écoulées depuis le 1er janvier 1970. Si le système n'a pas d'heure, alors .1 est renvoyé.

    char *ctime(const time_t *time);

Elle renvoie un pointeur vers une chaîne de la forme jour mois année heures:minutes:secondes.

    struct tm *localtime(const time_t *time);

Il renvoie un pointeur vers le tm structure représentant l'heure locale.

    horloge_t horloge(vide);

Il renvoie une valeur qui correspond approximativement à la durée d'exécution du programme appelant. Une valeur de .1 est renvoyée si l'heure n'est pas disponible.

    char * asctime ( const struct tm * time );

Elle renvoie un pointeur sur la chaîne qui contient les informations stockées dans une structure pointée par l'heure convertie sous la forme : jour mois date heures : minutes : secondes

    struct tm *gmtime(const time_t *time);

Il renvoie un pointeur vers l'heure sous la forme d'une structure tm.

    time_t mktime(struct tm *time);

Elle renvoie l'heure calendaire trouvée dans la structure pointée par time.

    double difftime ( time_t time2, time_t time1 );

Il calcule la différence en secondes entre time1 et time2.

    size_t strftime();

Il peut être utilisé pour formater la date et l'heure dans un format spécifique.

Structures de données C++

Les tableaux C++ vous proposent de définir des variables qui combinent plusieurs données de même nature. Pourtant, le structure est un autre type de données défini par l'utilisateur qui vous permettra de combiner des éléments de données de différentes sortes. Les structures sont utilisées pour représenter un enregistrement.

Définir une structure

Pour définir une structure, vous devez utiliser l'instruction struct. L'instruction struct définit un type de données, avec plus d'un membre, pour le programme.

|__+_|

le balise de structure est facultatif. À la fin de la définition, avant le dernier point-virgule, vous devez spécifier une ou plusieurs variables de structure.

Accéder aux membres de la structure

Pour accéder à n'importe quel membre de la structure, vous pouvez utiliser le opérateur d'accès membre (.) . L'opérateur d'accès au membre est codé comme un point entre un nom de variable de structure et un membre de structure auquel nous souhaitons accéder. Vous utiliseriez une structure mot clé pour définir des variables de type structure.

Structures en tant qu'arguments de fonction

Vous pouvez passer la structure comme argument de la fonction de la même manière que vous passez n'importe quelle autre variable ou pointeur.

EXEMPLE

|__+_|

SORTIR

|__+_|

Classes et objets C++

Tout en C++ est lié aux classes et aux objets, ainsi qu'à leurs attributs et méthodes. Par exemple : dans la vraie vie, un bus est un objet . Le bus a les attributs , comme le poids et la couleur, et méthodes , comme l'entraînement et le frein.

Les attributs et les méthodes sont variables et les fonctions qui appartiennent à la classe. Ils sont appelés membres de classe. La classe est un type de données défini par l'utilisateur que vous pouvez utiliser dans un programme et qui fonctionne comme un constructeur d'objets ou un plan pour créer des objets.

Créer une classe

Si vous voulez créer une classe, vous devez utiliser le classer mot-clé:

EXEMPLE

|__+_|

Créer un objet

En C++, un objet est créé à partir d'une classe.

Pour créer un objet, vous devez spécifier le nom de la classe, suivi du nom de l'objet. Pour accéder aux attributs de la classe, utilisez la syntaxe à points (.) sur l'objet :

EXEMPLE

|__+_|

Quelques concepts en détail

    Fonctions des membres de classe: Une fonction membre est une fonction qui a son prototype dans la définition de la classe comme n'importe quelle autre variable.Modificateurs d'accès aux classes: Un membre de classe peut être défini comme privé, public, protégé. Par défaut, il est privé.Constructeur: Un constructeur est une fonction dans une classe qui est appelée lorsqu'un nouvel objet est créé.Destructeur: Un destructeur est une fonction qui est appelée lorsque l'objet créé est supprimé.Constructeur de copie :C'est un constructeur qui crée un objet en l'initialisant avec un objet de la même classe, qui a été créé précédemment.Fonctions d'ami: Il donne un accès complet aux membres privés et protégés d'une classe.Fonctions en ligne: Le compilateur développe le code dans le corps de la fonction à la place d'un appel à la fonction.ce pointeur: Chaque objet a un pointeur spécial cette qui pointe vers l'objet lui-même.Membres statiques d'une classe: Les données membres et les fonctions membres d'une classe peuvent être déclarées comme statiques.

Héritage C++

L'héritage est un processus dans lequel un objet acquiert automatiquement toutes les propriétés et tous les comportements de son objet parent. Vous pouvez modifier les attributs et les actions qui sont définis dans d'autres classes.

La classe qui hérite des membres d'une autre classe est appelée classe dérivée, et une classe dont les membres sont hérités est appelée classe de base. La classe dérivée est la classe spécialisée de la classe de base.

Types d'héritage

    Héritage uniqueest le type d'héritage dans lequel la classe dérivée est héritée d'une seule classe de base.

‘A’ est la classe de base,

'B' est une classe dérivée.

cplusplus
    Héritage à plusieurs niveauxest un processus de dérivation d'une classe à partir d'une autre classe dérivée. La classe C hérite des propriétés de la classe B et la classe B hérite des propriétés de la classe B. A est la classe parent de B et la classe B est la classe parent de C.
image 617dd1cc84e68
    Héritage multipleUne classe dérivée est créée à partir d'une ou plusieurs classes de base. La classe C hérite des propriétés et du comportement de la classe B et de la classe A. Ainsi, ici, la classe A et la classe B sont les classes parentes de la classe C.
img 617dd1ccd67cc
  • Dans Héritage multi-chemins, une classe dérivée est créée à partir d'une autre classe dérivée et de la même classe de base d'une autre classe dérivée. Cet héritage n'est pas pris en charge par . RAPPORTER Des langages comme C#, F#, etc.

La classe D hérite des propriétés et du comportement de la classe C et de la classe B ainsi que de la classe A. La classe C et la classe B héritent de la classe A. La classe A est le parent de la classe B et de la classe C et de la classe D.

image 617dd1cd9230a
    Héritage hybrideest une combinaison de plusieurs héritages. Par conséquent, il peut s'agir d'une combinaison d'héritage multiniveau et d'héritage multiple et d'héritage multiniveau et d'héritage multichemin d'héritage multiniveau et multiple.
image 617dd1cdf0c4e

Modificateurs d'accès C++

Les modificateurs d'accès sont utilisés pour implémenter un aspect essentiel de la programmation orientée objet connu sous le nom de masquage de données. Les modificateurs d'accès dans une classe sont utilisés pour attribuer l'accès aux membres de la classe. Il définit certaines restrictions sur les membres de la classe pour qu'ils ne soient pas directement accessibles par les fonctions extérieures.

Il existe trois types de modificateurs d'accès disponibles en C++ :

  • Publique
  • Privé
  • Protégé

Discutons-en en détail :

Publique

Tous les membres de classe déclarés sous le spécificateur public sont accessibles à tous. Les fonctions membres déclarées comme publiques sont également accessibles par d'autres classes et fonctions. Les membres publics d'une classe sont accessibles depuis n'importe où dans le programme en utilisant l'opérateur d'accès (.) avec l'objet de cette classe.

EXEMPLE

|__+_|

SORTIR

|__+_|

Privé

Les fonctions membres à l'intérieur de la classe ne peuvent accéder qu'aux membres de la classe qui sont déclarés privés. Ils ne sont pas accessibles directement par un objet ou une fonction en dehors de la classe. Seules les fonctions amies sont autorisées à accéder aux données privées des membres d'une classe.

EXEMPLE

|__+_|

SORTIR

|__+_|

Protégé

Un modificateur d'accès protégé est identique à un modificateur d'accès privé car il n'est pas accessible en dehors de sa classe à moins que, avec l'aide d'une classe amie, la différence soit que les membres de la classe déclarés comme protégés sont accessibles par n'importe quelle classe dérivée de cette classe également.

EXEMPLE

|__+_|

SORTIR

|__+_|

Surcharge C++

Le langage de programmation C++ vous permet de spécifier plusieurs définitions pour un une fonction nom ou un opérateur dans le même domaine, appelé surcharge de fonctions et surcharge de l'opérateur , respectivement.

Une déclaration surchargée est déclarée avec le même nom qu'une déclaration précédemment déclarée dans la même portée, sauf que les deux déclarations ont des arguments différents et des définitions différentes.

Surcharge de fonction

La surcharge de fonctions est une fonctionnalité qui vous propose d'avoir plus d'une fonction ayant le même nom mais une liste de paramètres différente.

EXEMPLE

|__+_|

SORTIR

|__+_|

Polymorphisme C++

Surcharge de l'opérateur

Vous pouvez faire fonctionner des opérateurs pour des classes définies par l'utilisateur. Cela signifie que C++ peut fournir aux opérateurs une signification spéciale pour un type de données. C'est ce qu'on appelle la surcharge d'opérateur.

EXEMPLE

|__+_|

SORTIR

|__+_|

C'est un concept important de la programmation orientée objet. Cela signifie plus d'une forme. Autrement dit, la même entité se comporte différemment dans différents scénarios.

Remplacement de fonction

Vous pouvez avoir la même fonction dans la classe de base ainsi que dans les classes dérivées. Lorsque vous appelez la fonction à l'aide d'un objet de la classe dérivée, la fonction de la classe dérivée est exécutée plutôt que la classe de base.

Par conséquent, différentes fonctions sont exécutées en fonction de l'objet appelant la fonction. C'est ce qu'on appelle le remplacement de fonction

EXEMPLE

|__+_|

SORTIR

|__+_|

Fonctions virtuelles C++

En C++, vous ne pourrez peut-être pas remplacer les fonctions si nous utilisons un pointeur de classe de base pour pointer vers un objet de la classe dérivée.

L'utilisation de fonctions virtuelles dans la classe de base garantit que la fonction peut être remplacée dans ces cas. Ainsi, les fonctions virtuelles relèvent du remplacement de fonction.

Fonctions virtuelles pures

Il est possible que vous souhaitiez inclure une fonction virtuelle dans une classe de base afin qu'elle puisse être redéfinie dans une classe dérivée pour s'adapter aux objets de cette classe, mais qu'il n'y ait pas de définition significative que vous puissiez donner pour la fonction dans la classe de base .

EXEMPLE

|__+_|

Abstraction de données C++

L'abstraction de données est l'une des caractéristiques essentielles de la programmation orientée objet en C++. L'abstraction signifie afficher uniquement les informations pertinentes et masquer les détails. L'abstraction de données consiste à ne fournir que des informations essentielles sur les données du monde extérieur, en masquant les détails d'arrière-plan ou la mise en œuvre.

Abstraction à l'aide de classes

Vous pouvez implémenter l'abstraction en C++ à l'aide de classes. La classe vous aide à regrouper les données membres et les fonctions membres à l'aide des spécificateurs d'accès disponibles. Une classe peut décider quel membre de données sera visible du monde extérieur et lequel ne l'est pas.

Abstraction à l'aide de spécificateurs d'accès

Les spécificateurs d'accès jouent un rôle essentiel dans l'implémentation de l'abstraction en C++. Vous pouvez utiliser des spécificateurs d'accès pour appliquer des restrictions sur les membres de classe. Par example:

  • Les membres déclarés publics dans une classe sont accessibles depuis n'importe où dans le programme.
  • Les membres déclarés comme privés dans une classe ne sont accessibles qu'à partir de la classe. Ils ne sont pas autorisés à être accessibles à partir de n'importe quelle partie du code en dehors de la classe.

EXEMPLE

|__+_|

SORTIR

|__+_|

Encapsulation de données C++

C'est le processus de combinaison de fonctions et de membres de données dans une seule unité appelée classe. Ceci afin d'empêcher l'accès direct aux données. L'accès à ceux-ci est fourni par les fonctions de la classe. C'est l'une des fonctionnalités populaires de la programmation orientée objet qui aide à masquer les données.

Pour mettre en œuvre ce

  • Rendez tous les membres de données privés.
  • Créez des fonctions setter et getter publiques pour chaque membre de données de manière à ce que la fonction set définisse la valeur du membre de données et que la fonction get obtienne la valeur du membre de données

EXEMPLE

|__+_|

SORTIR

|__+_|

Classes abstraites C++

La classe C++ est rendue abstraite en déclarant l'une de ses fonctions en tant que fonction virtuelle vitale>pure. Une fonction virtuelle pure est mentionnée en plaçant = 0 dans sa déclaration. Les classes dérivées doivent fournir leur implémentation.

EXEMPLE

|__+_|

SORTIR

|__+_|

Fichiers et flux C++

Oui Non Type de données La description
un du flux Il représente le flux de fichiers de sortie et il est utilisé pour créer des fichiers et pour écrire des informations dans les fichiers.
deux ifstream Il représente le flux du fichier d'entrée et il est utilisé pour lire les informations des fichiers.
3 fstream Il représente le flux de fichiers en général et a la capacité de ofstream et ifstream.

Ouvrir un fichier

Un fichier doit être ouvert avant de pouvoir le lire ou y écrire. L'objet fstream ou ofstream peut être utilisé pour ouvrir un fichier en écriture. Un objet ifstream est utilisé pour ouvrir le fichier à des fins de lecture uniquement.

Oui Non Indicateur de mode La description
un ios :: mangé Toutes les sorties dans le fichier doivent être ajoutées à la fin.
deux ios :: appli Il ouvre un fichier pour la sortie et déplace le contrôle de lecture ou d'écriture à la fin du fichier.
3 ios :: tronc Si le fichier existe déjà, le contenu sera tronqué avant l'ouverture du fichier.
4 ios :: sortie Il ouvre un fichier pour l'écriture.
5 ios :: dans Il ouvre un fichier en lecture.

SYNTAXE

|__+_|

Fermer un fichier

Lorsqu'un programme C++ est terminé, il vide automatiquement tous les flux, libère toute la mémoire allouée et ferme tous les fichiers ouverts.

SYNTAXE

|__+_|

Lecture à partir d'un fichier

Vous pouvez lire les informations d'un fichier dans votre programme en utilisant l'opérateur d'extraction de flux (>>). La seule différence est que vous utilisez un objet fstream ou ifstream au lieu de l'objet cin.

EXEMPLE DE LECTURE ET D'ÉCRITURE

|__+_|

SORTIR

|__+_|

Pointeurs de position de fichier

ostream et istream fournissent des fonctions membres pour repositionner le pointeur de position de fichier. Ces fonctions membres sont seekp pour ostream et seekg pour istream. L'argument de seekp et seekg est un entier long. Un deuxième argument peut être mentionné pour indiquer la direction de recherche.

Gestion des exceptions C++

La gestion des exceptions en C++ est un processus permettant de gérer les erreurs d'exécution. Vous effectuez la gestion des exceptions afin que le flux normal de l'application puisse être maintenu même après des erreurs d'exécution.

En C++, une exception est un événement ou un objet qui est lancé lors de l'exécution. Toutes les exceptions sont dérivées de la classe std :: exception. Si nous ne gérons pas l'exception, il imprime le message d'exception et termine le programme.

Des exceptions Descriptions
std :: bad_exception Il est utilisé pour gérer les exceptions inattendues.
std :: échec_logique Il peut être détecté en lisant un code.
std :: bad_typeid Il est généralement lancé par typeid.
std :: runtime_error Il ne peut pas être détecté en lisant un code.
std :: exception C'est une exception et une classe parente de toutes les exceptions C++ standard.
std :: bad_cast Il est généralement lancé par dynamic_cast.
std :: bad_alloc Il est généralement être jeté par nouveau.

La gestion des exceptions C++ est basée sur trois mots-clés : essayer, attraper, et jeter .

    essayer− try block identifie un bloc de code pour lequel une exception particulière sera activée. Un ou plusieurs blocs catch le suivent.prise− Un programme intercepte une exception via un gestionnaire d'exceptions. Le mot-clé catch indique la capture d'une exception.jeter− Un programme lève l'exception lorsqu'un problème survient. Cela se fait à l'aide d'un mot-clé throw.

EXEMPLE

|__+_|

Mémoire dynamique C++

La mémoire est divisée en deux parties −

    La pile− Toutes les variables déclarées à l'intérieur de la fonction occupent une mémoire de la pile.Le tas− Il s'agit de la mémoire inutilisée du programme, et elle est utilisée pour allouer dynamiquement la mémoire lorsque le programme s'exécute.

Les programmeurs peuvent allouer dynamiquement de l'espace de stockage pendant l'exécution du programme. Néanmoins, les programmeurs ne peuvent pas créer de nouveaux noms de variables, et pour cette raison, l'allocation dynamique requiert deux critères :

  • Créer un espace dynamique en mémoire
  • Stocker son adresse dans un pointeur

La désallocation de mémoire fait également partie de ce concept où le nettoyage de l'espace est effectué pour d'autres stockages de données. Pour désallouer la mémoire dynamique, vous pouvez utiliser l'opérateur de suppression. Ainsi, l'allocation de mémoire dynamique fait référence à l'exécution manuelle de la gestion de la mémoire pour l'allocation de mémoire dynamique.

nouveaux et supprimer des opérateurs

Ici, le type de données peut être n'importe quel type de données intégré qui inclut un tableau, ou les types de données définis par l'utilisateur ont une classe ou une structure. Commençons par les types de données intégrés

SYNTAXE

|__+_|

Lorsque vous sentez qu'une variable n'est pas allouée dynamiquement et n'est plus requise, vous pouvez libérer de la mémoire dans le magasin gratuit avec le 'effacer' opérateur.

SYNTAXE

|__+_|

EXEMPLE

|__+_|

Allocation dynamique de mémoire des baies

Si vous en tant que programmeur; souhaitez allouer de la mémoire pour un tableau de caractères à l'aide de la même syntaxe, vous pouvez le faire.

EXEMPLE

|__+_|

Les espaces de noms vous proposent de regrouper des entités nommées qui ont portée mondiale dans des champs plus étroits, leur donnant étendue de l'espace de noms . Cela permet également d'organiser les éléments des programmes dans différentes portées logiques désignées par des noms. Un espace de noms est une fonctionnalité présente en C++ et non présente en C. Plusieurs blocs d'espace de noms portant le même nom sont autorisés. Toutes les déclarations dans les blocs sont déclarées dans la portée nommée.

SYNTAXE

|__+_|

EXEMPLE

|__+_|

SORTIR

|__+_|

Espaces de noms discontinus

Un espace de noms est défini en plusieurs parties et un espace de noms est constitué de la somme de ses parties définies. Les parties distinctes de l'espace de noms sont réparties sur plusieurs fichiers.

SYNTAXE

|__+_|

Espaces de noms imbriqués

Ici, vous pouvez définir un espace de noms dans un autre espace de noms

SYNTAXE

|__+_|

EXEMPLE

|__+_|

Modèles C++

Le template est une fonctionnalité de C++ qui propose d'écrire des programmes génériques. En d'autres termes, vous pouvez créer une seule fonction ou une classe pour travailler avec différents types de données à l'aide de modèles. Les modèles sont utilisés dans la base de code plus large pour la flexibilité du code et la réutilisabilité des programmes.

Ces concepts sont utilisés de deux manières :

  • Modèles de fonction
  • Modèles de classe

Modèles de fonction

Un modèle de fonction fonctionne comme une fonction normale, avec une différence essentielle.

Un seul modèle de fonction peut fonctionner avec différents types de données, mais une seule fonction normale peut fonctionner avec un ensemble de types de données.

En règle générale, si vous souhaitez effectuer des opérations identiques sur plusieurs types de données, vous pouvez utiliser la surcharge de fonction pour créer des fonctions avec la déclaration de fonction.

Cependant, une meilleure approche consisterait à utiliser des modèles de fonction car vous pouvez effectuer la même tâche en écrivant moins de code et maintenable.

EXEMPLE

|__+_|

SORTIR

|__+_|

Modèles de classe

Comme les modèles de fonction, vous pouvez créer des modèles de classe pour les opérations de classe. Habituellement, vous devez créer une classe différente pour chaque type de données OU créer d'autres variables membres et fonctions au sein de la classe unique.

Cela gonflera inutilement votre base de code et sera difficile à maintenir, car un changement dans une classe/fonction doit être effectué sur toutes les classes/fonctions. Bien que les modèles de classe facilitent la réutilisation du même code pour tous les types de données.

EXEMPLE

|__+_|

SORTIR

|__+_|

Préprocesseurs C++

Les directives du préprocesseur sont les lignes incluses dans le code des programmes précédées d'un signe dièse (#). Ces lignes ne sont pas des instructions programmées mais des directives pour le préprocesseur. Le préprocesseur examine le code avant que la compilation du code ne commence et résout toutes les directives avant que les instructions régulières ne génèrent du code.

Les directives du préprocesseur s'étendent sur une seule ligne de code. Dès que le caractère de saut de ligne est trouvé, la directive du préprocesseur est terminée.

Il existe 4 principaux types de directives de préprocesseur :

  • macro
  • Inclusion de fichiers
  • Compilation conditionnelle
  • Autres directives

macro

Les macros sont un morceau de code auquel on donne un nom. Chaque fois que le compilateur rencontre ce nom, il le remplace par le morceau de code réel. La directive ‘#define’ est utilisée pour définir une macro.

EXEMPLE

|__+_|

SORTIR

|__+_|

Macros C++ prédéfinies

    __LIGNE__

Il contient le numéro de ligne du programme lors de la compilation du programme.

    __DÉPOSER__

Il contient le nom de fichier actuel du programme lors de sa compilation.

    __DATE__

Il contient la chaîne qui correspond à la date de traduction du fichier source en code objet.

    __TEMPS__

Il contient une chaîne heure:minute:seconde qui correspond à l'heure à laquelle le programme a été compilé.

Insertion de fichiers

Cette directive de préprocesseur indique au compilateur d'inclure un fichier dans le programme. Deux types de fichiers sont conservés par l'utilisateur dans le programme :

    Fichier d'en-tête ou fichiers standard: Ces fichiers contiennent la définition de fonctions prédéfinies telles que printf(), scanf() etc. Ces fichiers doivent être inclus pour travailler avec ces fonctions. Une fonction différente est déclarée dans des fichiers d'en-tête séparés.Fichiers définis par l'utilisateur: Lorsqu'un programme devient énorme, il est recommandé de le diviser en fichiers plus petits et de l'inclure chaque fois que nécessaire. Ces types de fichiers sont des fichiers définis par l'utilisateur.

Compilation conditionnelle

Cela aide à compiler une partie spécifique du programme ou à ignorer la compilation d'une partie particulière du programme en fonction de certaines conditions.

SYNTAXE

|__+_|

Autres directives

Outre les directives mentionnées ci-dessus, voici deux autres directives qui ne sont pas couramment utilisées. Ceux-ci sont:

    Directive #undef: La directive #undef est utilisée pour dédéfinir une macro existante.Directive #pragma: Il s'agit d'une directive à usage spécial, et elle est utilisée pour activer ou désactiver certaines fonctionnalités.

Gestion des signaux C++

Les signaux sont les interruptions que le système d'exploitation fournit à un processus qui mettra fin prématurément à un programme. En appuyant sur Ctrl+C sous UNIX, Linux , Mac OS X ou machine Windows, vous pouvez créer des interruptions.

Il existe des signaux que le logiciel ne peut pas détecter, mais il existe une liste de signaux que vous pouvez détecter dans votre programme et prendre des mesures acceptables en fonction des signaux. Le fichier d'en-tête C++ décrit ces signaux.

Oui Non Signal La description
un SIGFPE Une opération arithmétique erronée, telle qu'un passage à zéro ou une opération de débordement.
deux SIGABRT Arrêt anormal du programme, tel qu'un appel à abandonner.
3 SIGINT Réception d'un signal de mise au point interactive
4 SCELLER Découverte d'une instruction illégitime.
5 SIGTERME Soumis une demande de résiliation au programme.
6 SIGSEGV Accès au disque non valide.

La fonction signal()

La bibliothèque de gestion des signaux C++ inclut une fonctionnalité de signal pour piéger les événements imprévisibles.

SYNTAXE

|__+_|

EXEMPLE

|__+_|

SORTIR

|__+_|

La fonction raise()

Avec la fonction raise(), qui prend un numéro de signal entier comme argument, vous pouvez produire des signaux.

SYNTAXE

|__+_|

EXEMPLE

|__+_|

SORTIR

|__+_|

Le multithreading est un type spécialisé de multitâche et la fonction qui permet à votre machine d'exécuter simultanément deux programmes ou plus est une fonction multitâche. Il existe deux types de multitâches en général : basé sur les processus et basé sur les threads. L'exécution parallèle des programmes est gérée par le multitâche basé sur les processus. Le multitâche basé sur les threads traite de l'exécution parallèle de portions d'un même programme. Il y a deux ou trois composants d'un programme multithread qui s'exécuteront simultanément.

SYNTAXE

|__+_|
OUI NON Paramètre La description
un en colère Une instruction unique qui peut être transmise à routine-start. Il doit être transféré en tant que transtypage de pointeur de type void par comparaison. NULL peut être utilisé lorsqu'il n'y a pas d'argument à déplacer.
deux fil Un identifiant opaque et spécial pour le thread actuel renvoyé par la sous-routine.
3 attribut Un attribut d'objet invisible qui peut être utilisé pour définir les attributs de thread. Vous pouvez définir un objet avec des propriétés de thread ou NULL avec les valeurs par défaut.
4 start_routine La routine C++ qui, une fois établie, exécutera le thread.

Threads se terminant

Nous utilisons la routine suivante pour terminer un thread POSIX :

|__+_|

Ici, pthread exit est utilisé pour quitter directement un thread. Habituellement, une fois qu'un thread a terminé son travail et n'est plus nécessaire pour fonctionner, la routine pthread exit() est nommée.

Si main() se termine et se termine avec pthread exit() avant les threads qu'il produit, les autres threads peuvent commencer à s'exécuter. Sinon, lorsque main() se termine, ils sont immédiatement terminés

Entrée et détachement des fils

Deux routines que nous pouvons utiliser pour entrer ou supprimer des threads sont suivies.

|__+_|

Le sous-programme pthread join() bloque le thread appelant jusqu'à ce que le thread 'threadid' soit terminé. L'un de ses attributs détermine s'il est joignable ou détaché lorsqu'un thread est formé. Il ne peut être joint que par des threads générés comme pouvant être joints. Il ne peut jamais être joint si un fil est formé comme détaché.

Programmation Web C++

Et qu'est-ce que CGI?

Un ensemble de directives décrivant comment les informations sont partagées entre le serveur Web et un script personnalisé est l'interface de passerelle typique ou CGI. Pour les systèmes de passerelle externes, l'interface de passerelle générique, ou CGI, est une norme d'interface avec les serveurs d'informations tels que les serveurs HTTP. CGI/1.1 est la dernière version et CGI/1.2 est en cours de développement.

Naviguer sur Internet

Voyons ce qui se passe lorsque nous appuyons sur un lien hypertexte pour parcourir une certaine page Web ou URL afin de saisir le concept de CGI. Le serveur Web HTTP est contacté par votre navigateur et demande l'URL, c'est-à-dire nom de fichier par nom de fichier. Le serveur Web analyse l'URL et recherche un nom de fichier. Si le fichier demandé est localisé, le serveur Web transfère le fichier vers le navigateur, sinon, il enverra un message d'erreur indiquant que vous avez demandé un fichier non valide.

L'interface de passerelle populaire (CGI) est un protocole de base qui permet aux applications de communiquer avec des serveurs Web et avec des clients. Il est possible d'écrire ces programmes CGI en Python, PERL, Shell, C ou C++, etc.

EXEMPLE

|__+_|

Configuration du serveur Web

Assurez-vous que le serveur Web accepte CGI avant de poursuivre la programmation CGI et qu'il est conçu pour accepter les programmes CGI. De nombreux programmes CGI exécutés par le serveur HTTP se trouvent dans un répertoire préconfiguré. Ce répertoire est appelé répertoire CGI et il est nommé /var/www/cgi-bin par convention. Les fichiers CGI auront des extensions comme .cgi par convention, bien qu'ils soient exécutables avec C++.

En-têtes HTTP

    Set-Cookie : Chaîne

Configurez le cookie qui passe par la chaîne.

    Dernière modification : Date

La date de la dernière mise à jour de la ressource.

    Longueur du contenu : N

La longueur, en octets, des données renvoyées. Afin de signaler le temps de chargement approximatif d'un fichier, le navigateur utilise cette valeur.

    Type de contenu :

Une chaîne MIME qui spécifie le format de la chaîne

    Emplacement : URL

L'URL qui doit être renvoyée, plutôt que l'URL demandée. Ce fichier sera utilisé pour rediriger une requête vers un autre fichier.

    Expire : Date

Le jour où les données sont devenues inutiles. Le navigateur doit l'utiliser pour décider si un site Web doit être actualisé.

Variables d'environnement

    TYPE DE CONTENU: le type de données de contenu utilisé lorsque le client envoie le contenu joint au serveur. Par exemple, télécharger des fichiers, etc.LONGUEUR DU CONTENU: Durée des informations du questionnaire qui ne peuvent être obtenues que pour les requêtes POST.HTTP-COOKIE: Renvoie les cookies définis dans le type de paire clé & valeur.AGENT HTTP UTILISATEUR: Le champ User-Agent de l'en-tête de la demande fournit des informations sur l'agent utilisateur qui a lancé la demande. C'est le nom d'un navigateur sur Internet.INFOS CHEMIN: la direction vers le fichier de script CGI.CHAÎNE DE REQUÊTE: informations codées en URL soumises avec une demande du processus GET.ADRESSE DISTANTE: L'adresse IP de l'hôte distant qui autorise l'appel. Cela peut être utile pour la journalisation ou à des fins d'authentification.HÔTE DISTANT: Le nom complet de l'hôte à la recherche. Si cette information n'est pas disponible, il est possible d'utiliser REMOTE ADDR pour obtenir une adresse IR.METHODE DE DEMANDE: La méthodologie utilisée pour produire la soumission. GET et POST sont les approches les plus populaires.NOM DU FICHIER DE SCRIPT: Le chemin complet vers un script CGINOM DU SERVEUR: Le nom de domaine ou l'adresse IP du serveur.LOGICIEL_SERVEUR: Le nom et la version du programme que le serveur exécute.

Méthodes GET et POST

Lorsque vous essayez de transférer des détails de votre navigateur vers le serveur Web et éventuellement vers votre application CGI, vous devez rencontrer certains scénarios. Deux approches sont utilisées le plus souvent par le navigateur pour transférer ces informations au serveur Web. Ces approches sont la méthode GET et la méthode POST.

EXEMPLE D'URL Méthode GET

|__+_|

Utilisation des cookies

Le protocole HTTP est un protocole sans état. Mais il est important pour un site marchand de conserver les données de session entre différents sites. Un enregistrement d'utilisateur, par exemple, se termine après que plusieurs pages ont été complétées. Mais comment conserver les détails de session pour l'utilisateur sur tous les sites Web. Le moyen le plus fiable de mémoriser et de surveiller les intérêts, les ventes, les commissions et d'autres détails nécessaires à l'amélioration de l'expérience des visiteurs ou des statistiques du site consiste à utiliser des cookies dans certains cas.

Sous la forme d'un cookie, votre serveur transfère certaines données à la fenêtre du visiteur. Le cookie sera approuvé par le navigateur. Si tel est le cas, il est enregistré sur le disque dur du visiteur sous forme d'archive en texte brut. Maintenant, le cookie est prêt à être récupéré lorsque l'utilisateur accède à une autre page de votre site Web. Une fois récupéré, ce qui a été stocké est connu/mémorisé par le serveur.

    Expire-Cela signifie la date d'expiration du cookie. S'il est vide, lorsque le visiteur quitte le navigateur, le cookie expirera.Domaine− Ceci affiche le nom de domaine du site.Chemin− Indique le chemin d'accès au répertoire ou à la page Web de paramétrage des cookies. Si vous essayez de récupérer un cookie à partir d'un répertoire ou d'un onglet, il peut être nul.Sécurise− Si ce champ comporte le mot secure alors seul un serveur sécurisé peut récupérer le cookie. Si ce champ est vide, aucune autre restriction ne s'applique.Nom = valeur− Sous la forme de paires de clé et de valeur, les cookies sont définis et récupérés.

Exemple de téléchargement de fichier

|__+_|

Conclusion

Avec cela, nous arrivons à la fin de ce tutoriel C++. J'espère que cela vous a aidé à comprendre les bases de la programmation C++.