对遗产进行分类

Posted

技术标签:

【中文标题】对遗产进行分类【英文标题】:classifying a heritage 【发布时间】:2012-12-30 23:19:43 【问题描述】:

我在不久的将来有一个考试,我真的被一个找不到答案的问题困住了。

假设类CI继承类Sup为:

class CI: protected Sup
;

为什么这不是分类遗产?

提前致谢,感谢所有帮助。

【问题讨论】:

parashift.com/c++-faq/prot-vs-priv-inherit.html 第一次看到“分类继承”这个词... 【参考方案1】:

在 C++ 中,只有公有继承才被认为是真正的继承,这意味着子类将继承其父类的接口(即 IS-A 关系)。一个体面的继承应该满足Liskov substitution principle。

至于受保护/私有继承,它们实际上是一种包含/组合,因为派生类将隐藏其基类的接口(作为受保护/私有成员)并且仅使用基类的实现(即 HAS-A 或 Is-Implemented-In-Terms-Of 关系)。

您可以参考 SO 上的这个问题以获得更好的理解:Why do we actually need Private or Protected inheritance in C++?

也就是说,受保护/私有继承是 C++ 中一个值得商榷的特性,它被 Java 和 C# 等 C++ 继承者所抛弃。

【讨论】:

以上是关于对遗产进行分类的主要内容,如果未能解决你的问题,请参考以下文章

留遗产

用matlab对数据分类汇总

如何使用在不同项目中构建的分类模型对新文本进行分类?

实战|朴素贝叶斯分类对文档进行分类

如何使用分类器算法对单个文本进行分类

如何使用 SVM 对图像进行分类