Outils pour utilisateurs

Outils du site


lang:cpp:include

Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Les deux révisions précédentesRévision précédente
Prochaine révision
Révision précédente
lang:cpp:include [2020/01/04 12:31] – Ajout de "Ne pas exposer l'implémentation" rootlang:cpp:include [2020/01/04 19:47] (Version actuelle) – Inclure les sous-dossiers dans les includes root
Ligne 12: Ligne 12:
 ===Ne pas exposer l'implémentation=== ===Ne pas exposer l'implémentation===
 Pour les classes publiques, et si besoin pour les classes privées, masquer l'implémentation via [[helloworld:design_pattern:pont:cpp|pimpl]]. Pour les classes publiques, et si besoin pour les classes privées, masquer l'implémentation via [[helloworld:design_pattern:pont:cpp|pimpl]].
 +
 +===Éviter les inclusions multiples===
 +Utiliser
 +
 +<code cpp>
 +#pragma once
 +</code>
 +
 +et non pas les
 +<code cpp>
 +#ifndef XXX_H__
 +#define XXX_H__
 +...
 +#endif
 +</code>
 +
 +===Ordre d'inclusion===
 +D'abord les inclusions systèmes ''#include <....hpp>'', puis les inclusions locales (''#include %%"%%....h%%"%%'').
 +
 +===Un entête, une classe===
 +Un seul fichier entête pour une ''class'', un ''enum'', une ''struct''.
 +
 +Cela réduit les dépendances.
 +
 +===Inclure les sous-dossiers dans les includes===
 +Dans une même librairie, préférer l'inclusion du sous dossier depuis la racine du projet plutôt que devoir fournir une liste complète des dossiers à chercher (''-I'' dans gcc).
 +
 +Bon code :
 +
 +<code cpp>
 +#include "Network/CreateSession.h"
 +#include "Application/Settings.h"
 +#include "ExternalLib/RakNet/RakPeerInterface.h"
 +</code>
 +
 +Mauvais code :
 +
 +<code cpp>
 +#include "CreateSession.h"
 +#include "Settings.h"
 +#include "RakPeerInterface.h"
 +</code>
 +
lang/cpp/include.1578137517.txt.gz · Dernière modification : 2020/01/04 12:31 de root