Main menu:

Site search

Categories

mai 2024
L M M J V S D
 12345
6789101112
13141516171819
20212223242526
2728293031  

Archive

Archive for 'C++'

C++ – Ordre d’initialisation

On a vu l’importance des listes d’initialisation mais il est un point important dont il faut se souvenir: les variables ne sont pas nécessairement initialisées dans l’ordre où elles sont dans la liste d’initialisation. En fait, l’ordre d’initialisation dépend de l’ordre dans lequel elles sont déclarées. class A { public: A() : a(10), b(20) {} […]

C++ – Liste d’initialisation

Il est de bonne pratique d’initialiser les variables membres d’une classe au moyen d’une liste d’initialisation plutôt que de le faire dans le corps du constructeur par exemple. Cette pratique est plus efficace et moins sujette aux bugs sans compter que la liste d’initialisation doit être utilisée pour certains objets qui ne peuvent pas être […]

C++ – Conversions de type (casting)

Contrairement au C, C++ propose 4 types de conversions (casts) spécialisés. Mais en quoi est-ce mieux d’utiliser les casts spécialisés par rapport au cast du C? En C, on place entre parenthèses le type vers lequel la conversion doit se faire. Par exemple pour convertir un Objet en int, on écrit: int i; i = […]

C++ – Fonctions membres constantes

On déclare une fonction membre constante en faisant suivre sa déclaration du mot-clé const. struct S { void f(){} void f()const{} } La différence entre les deux fonctions f() est que la version non-constante ne peut être appelée pour des objets constants de type S. La version constante de f() garantit aussi qu’aucune donnée membre […]

C++ – Constantes

Lorsque l’on veut préciser que la valeur d’un objet ne varie pas, on peut le faire précéder du mot-clé const. const int i = 10; L’objet étant constant, il doit être initialisé au moment de sa déclaration. const int i; Erreur i n’est pas initialisé. const int i = f(); Ok même si la valeur […]

C++ – Un tableau comme argument d’une fonction

char *c; char c[16]; Ces deux déclarations déclarent deux variables de types différents. La première déclare un pointeur de caractère. La seconde déclare un tableau de caractères. Pour s’en convaincre, il suffit de voir que sizeof() appliqué aux deux variables donne des résultats différents. 4 pour le premier et 16 pour le second (sur ma […]