class Decorator:public Beverage
{
public:
Decorator(Beverage * com);
virtual ~Decorator();
virtual string get_descrption();
protected:
Beverage * component;
};
而MilkDecorator继承了Decorator,如果component 为私有的则MilkDecorator便不能访问。
如果milkDecorator 设计成这样就不会违反了封装的原则。
基本上只有一个区别,就是protect成员能被派生类访问!而派生类对private没有特殊访问权!