C++嵌套类就是在一个类的内部定义另外一个类。嵌套类只能在外围类中使用。
这样做的目的就是为了隐藏细节信息,这样就和桥接模式联系起来了,因为桥接模式的本意也就是将抽象和抽象方法的具体实现相分离,如果具体实现代码量不大,而且只是这个类中需要使用的话,就可以使用嵌套类来完成。
嵌套类对象的创建如果使用new和delete的话,还得关注何时销毁这个对象,所以可以使用boost库中的shared_ptr来代替。
具体代码如下:
class Service {
private:
class ServiceImpl_ {
public:
void doSomething() {
cout << "impl do work.........." << endl;
}
};
boost::shared_ptr<ServiceImpl_> impl_;
public:
Service() {
impl_ = boost::make_shared<ServiceImpl_>();
}
void doService() {
impl_->doSomething();
}
};