65,186
社区成员




pimple模式:
//#include "pimpl_sample.h"
struct impl;
class pimpl_sample
{
public:
pimpl_sample();
~pimpl_sample();
void do_something();
private:
impl* pimpl_;
};
//.cpp
#include "pimpl_sample.h"
#include <string>
#include <iostream>
using namespace std;
struct impl
{
void do_something_()
{
std::cout<<s_<<endl;
}
std::string s_;
};
pimpl_sample::pimpl_sample()
: pimpl_(new impl)
{
pimpl_->s_ = "THIS is the impl idiom";
}
pimpl_sample::~pimpl_sample()
{
delete pimpl_;
}
void pimpl_sample::do_something()
{
pimpl_->do_something_();
}
int main()
{
pimpl_sample* Test=new pimpl_sample;
Test->do_something();
delete Test;
return 0;
}
感觉和lz说的差不多一个意思;