【发布时间】:2012-01-31 20:26:16
【问题描述】:
假设我有这样的课程(简化):
class Foo_p;
class Foo
{
private:
Foo_p *p;
public:
Foo();
/* methods, etc... */
};
这个类是 API 的一部分。 Foo_p 是类的所有私有部分,不是 像往常一样在类 Foo 中声明,而是在一个单独的前向声明的类中声明,该类仅由外部不可见的底层实现使用。
我已经在几个项目中看到过这种模式,它有名字吗?
另外,如何正确使用它(例如异常安全等)?实际实施应该去哪里?在 Foo 类中,像往常一样,只使用 Foo_p 来存储数据,还是在 Foo_p 类中,Foo 只是一个包装器?
【问题讨论】:
标签: c++ oop design-patterns