Skip to content

Instantly share code, notes, and snippets.

@splacentino
Last active August 29, 2015 14:18
Show Gist options
  • Save splacentino/65e8d3e1e71c19bc6b1b to your computer and use it in GitHub Desktop.
Save splacentino/65e8d3e1e71c19bc6b1b to your computer and use it in GitHub Desktop.
#include rules

English

  • do nothing if: A makes no references at all to B
  • do nothing if: The only reference to B is in a friend declaration
  • forward declare B if: A contains a B pointer or reference: B* myb;
  • forward declare B if: one or more functions has a B object/pointer/reference as a parementer, or as a return type: B MyFunction(B myb);
  • #include "b.h" if: B is a parent class of A
  • #include "b.h" if: A contains a B object: B myb;

French

  • Rien faire si la classe A ne refère aucunement à B
  • Ne rien faire si la seule réference à la classe B est une déclaration "friend"
  • Faire une "forward declaration" de B si A contient un pointeur ou une reference à B : B * b;
  • Faire une "forward declaration" de B si au moins une fonction a comme paramètre/valeur de retour un objet/pointeur/reference à B
  • Utiliser l'instruction #include "B.hpp" si A hérite de B
  • Utiliser l'instruction #include "b.hpp" si A contient un objet b : B b;
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment