salut à tous
je voudrais savoir à quoi servent ces deux lignes écrites en début d'un .cpp :
#ifndef _nomDeLaClasse_HPP_
#define _nomDeLaClasse_HPP_
Merci bp et très bonne journée![]()
salut à tous
je voudrais savoir à quoi servent ces deux lignes écrites en début d'un .cpp :
#ifndef _nomDeLaClasse_HPP_
#define _nomDeLaClasse_HPP_
Merci bp et très bonne journée![]()
Salut,
#ifndef vient forcément associé avec un #endif.
L'intérêt est d'inclure une partie de code, uniquement une fois.
Au premier passage, le ifndef ( if not defined ) return true, donc on rentre dans la portion de code. La première ligne définie la variable testée, donc au prochain passage, le ifndef returnera false, et le code ne sera plus incluS.
A+
Salut,
Tout simplement IF Not DEFined (si ce n'est pas défini)
Il créera un bloc "indivisible" allant jusqu'au #endif qui lui correspond
C'est, tout simplement, une structure de controle qui dira
Si _nomDeLaClasse_HPP_ n'est pas défini
tu défini _nomDeLaClasse_HPP_
(tout le code de la définition de ta classe)
#endif (et on s'arrete ici)
Le but est d'éviter que l'on essaye de définir quelque chose qui est déjà défini...
Les instructions qui commencent par un # (#ifdef, #ifndef, #endif, #include, #define...)sont des instructions "préprocesseur".
Il s'agit de "macro" qui permettront au préprocesseur de travailler selon ce qu'il a déjà rencontré lorsqu'il parcoure un fichier...
A méditer: La solution la plus simple est toujours la moins compliquée
Ce qui se conçoit bien s'énonce clairement, et les mots pour le dire vous viennent aisément. Nicolas Boileau
Compiler Gcc sous windows avec MinGW
Coder efficacement en C++ : dans les bacs le 17 février 2014
mon tout nouveau blog
En général, on trouve ça dans un fichier .h (ou .hpp) mais pas un .cpp
Ce sont des instructions pour le préprocesseur qui évitent d'inclure plusieurs fois le même fichier .h
#ifndef _nomDeLaClasse_HPP_ => Si la variable préprocesseur _nomDeLaClasse_HPP_ n'est pas définie
#define _nomDeLaClasse_HPP_ => Alors on la définit...
Et à la fin de ton .h, tu dois avoir #endif => C'est la fin de la condition...
Partager