12.1.14 Les fonctions privées de la classe PAppSdlOpenGl3

Et voici les fonctions privées de la classe PAppSdlOpenGl3 :

1
2
3
4
5
private:
	void initialisationPAppSdlOpenGl3(const std::string & titreFenetre, int largeurFenetre, int hauteurFenetre);
	PAppSdlOpenGl3(const PAppSdlOpenGl3 & other); //on met le constructeur de copie en private pour empêcher la copie de la classe
	//récupère les événements du clavier
	void getEvent(SDL_Event* event);

Mais, il y a le constructeur de copie, je me trompe ?

Voici un petit tour de passe-passe pour empêcher la copie d'une classe, on met le constructeur de copie private, donc on à pas le droit de s'en servir à l'extérieur de la classe, donc la copie est interdite.

Cette technique est plus fiable que celle de mettre un assert(false) dans la fonction de copie, car la fonction assert n'est compilée qu'en mode debug, ce qui veut dire que vous aurez le droit de copier la classe si vous compilez votre programme en -DNDEBUG, sans le mode debug, ce qui n'arrive pas si vous mettez le constructeur de copie en private.

Voilà, comme ça vous connaissez les deux techniques.