c# - C++ 如何克服菱形问题?

标签 c# c++ multiple-inheritance

<分区>

我不是 C++ 专家,但我不得不考虑这个问题。为什么在 C++ 中可以实现多重继承,而我不能在 C# 中实现? (我知道菱形继承(钻石问题),但这不是我在这里要问的)。 C++如何区分从多个基类继承的相同方法签名的歧义?为什么不能将相同的设计合并到 C# 中?

最佳答案

这是一道选择题。 C# 语言设计者 Anders Hejlsberg 选择将多重继承排除在语言之外。你可能想知道为什么......我的猜测是(1)通常不需要多重继承,(2)多重继承经常以错误的方式使用(就像许多面向对象的结构)和(3)它会语言和/或编译器和/或静态检查不必要地复杂。

CLR 本身并不阻止多重继承;因此,它在 C++.NET 中可用。

关于c# - C++ 如何克服菱形问题?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14582780/

相关文章:

c# - 将 C++ 新浮点分配转换为 C#

c++ - 使用 C++ 从文件读取到单个内存块

C++ fileIO 行数

C++ 菱形接口(interface)继承

python - PyQt5:派生 QWidget 类中带有元类的 Mixin 的问题

c# - 如何在(rdlc)报告中水平显示表格

c# - 检查一个元素是否存在于mvc formcollection中

c# - 单元测试 c# Windows 10 IoT 核心应用程序(错误 : DEP0700)

c++ - 在 64 位 Windows 上编译 Tesseract OCR

c++ - 关于删除表达式,C++ 中缺少 "placement delete"