1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37
|
//MaClass.h
#include <memory>
class MaClassPImpl;
class MaClass
{
std::auto_ptr<MaClassPImpl> pimpl_;
MaClass(const MaClass&); //Pas définie pour ne pas avoir a gérer les copies d'auto_ptr
MaClass& operator = (const MaClass&); //idem
public:
MaClass();
~MaClass(); //Définie dans le CPP
};
//MaClass.cpp
#include "MaClass.h"
class MaClassPImpl
{
};
MaClass::MaClass():
pimpl_(new MaClassPImpl())
{
}
MaClass::~MaClass()
{
//Ici, l'auto_ptr sauras détruire MaClassPImpl.
} |