Empêcher une classe d'être recopiable

Empêcher une classe d'être recopiable

boost::noncopyable

Voir version :

Pas de dépendances

Télécharger :

#include <boost/utility.hpp>

class Test:public boost::noncopyable
{
protected:
    int a;
public:
    Test(){a=2;}
};


int main()
{
    Test t;
    Test t2 = t;
    return 0;
}



Commentaires

	Voici un exemple simple qui ne compile pas !
	En effet, j'ai créé une classe Test, et je la fais hériter de boost::noncopyable

	Et du coup, ma ligne Test t2 = t, qui tente une recopie, est interdite !

	Notez qu'on peut faire ça sans boost : Si on veut qu'une classe ne soit pas recopiable, il suffit de déclarer
	le constructeur de recopie (même vide) et la surcharge de l'opérateur = en private.

	Commentez la ligne 
	Test t2 = t; 
	pour que le programme compile.