private继承与复合
private继承定义:private继承而来的所有成员,在derived中都会变成private属性。
应用场合:当一个意欲成为derived class 者想访问一个意欲成为base class 者的protected成分,
或为了重新定义一或多个virtual 函数时可以用private继承。
知识点:
private继承意味只有实现部分被继承,接口部分应略去。
如果classes之间的继承关系是private,编译器不会自动将一个derived class对象转换为一个base class对象,
这样的转换会导致错误。请记住,private继承纯粹只是一种实现技术。
尽量用复合代替private继承。因为复合可避免virtual函数重定义。
事例:
class Widget : public Timer
{
private:
virtual void onTick() const; //查看Widget的数据等等。
};
//复合实现
class Widget
{
private:
class WidgetTimer : : public Timer
{
public:
virtual void onTick() const; //查看Widget的数据等等。
};
WidgetTimer timer;
};
补充:软件开发 , C++ ,