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) {} […]
Posted: juin 1st, 2008 under C++.
Comments: none
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 […]
Posted: mai 17th, 2008 under C++.
Comments: none
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 = […]
Posted: mai 4th, 2008 under C++.
Comments: 1
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 […]
Posted: avril 16th, 2008 under C++.
Comments: none
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 […]
Posted: avril 5th, 2008 under C++.
Comments: none
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 […]
Posted: mars 20th, 2008 under C++.
Comments: none