设为首页 加入收藏

TOP

private继承与复合
2015-11-21 01:08:48 来源: 作者: 【 】 浏览:2
Tags: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;
};

】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇poj 2528 Mayor's posters(线.. 下一篇uva_10815-Andy's First Dict..

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容: