close
// Man.hpp
class Man
{
private:
class Impl;
Impl *const m;
public:
Man();
~Man();
public:
void setAge(const int age);
};
// Man.cpp
#include <Man.hpp>
struct Man::Impl
{
Impl()
{
age = 20;
}
int age;
};
Man::Man()
:m( new Impl() )
{}
Man::~Man()
{
delete m;
}
void Man::setAge(const int age)
{
m->age = age;
}
問: 有什麼好處?
答:
變更類別的成員變數時,只需要重新編譯Man.cpp檔並且連結即可
所有相依於Man.hpp檔的模組都無須重新編譯
全站熱搜
留言列表