【发布时间】:2017-02-19 04:44:47
【问题描述】:
我经常使用桥接设计模式。但是我对如何在继承的对象中有效地使用它感到困惑。使用 struct apple::impl :public fruit 会产生双对象水果。我想在实现中使用抽象基类数据成员
class fruit
{
public:
virtual void print() = 0;
private:
int count_;
};
class apple: public fruit
{
public:
virtual void print();
private:
int apple_count_;
struct impl;
std::unique_ptr<impl> impl_;
};
struct apple::impl
{
virtual void print() { cout << "apple"; }
};
void apple::print(){ impl_->print(); }
【问题讨论】:
-
有三个访问修饰符:
public、private和protected。也许看看第三个。
标签: c++ inheritance design-patterns