C++ Pimpl技法 C++介面實現分離原理
阿新 • • 發佈:2018-12-01
C++Pimpl技法
優點
- 將C++的介面和實現分離在兩個類中
- C++的實現和介面在不同的檔案中,實現改變不會導致介面檔案重新編譯
將下面的程式碼分開在幾個檔案裡面就實現了Pimpl技法
#include <iostream>
class X;
class C
{
public:
C();
virtual ~C();
void Fun();
private:
std ::auto_ptr<X> pImpl_; //pimpl
};
class X
{
public:
X()
{
printf("new x\n");
}
virtual ~X()
{
printf ("delete X\n");
}
void Fun()
{
}
};
C::C():pImpl_(new X)
{
printf("new C\n");
}
C::~C()
{
printf("delete C\n");
}
void C::Fun()
{
pImpl_
}
int main()
{
std::auto_ptr<C> c(new C);
c->Fun();
return 0;
}