0

什么可以算作 C# 和 C++ OOP 标准定义之间的明显差异?我对任何与重载/覆盖方法的可见性相关的东西都特别感兴趣。

似乎C#在类链中实现了基于堆栈调用顺序的C++继承顺序的子集;真的吗?还是 C# OOP 与 C++ 不同?(当然,C# 具有本机反射支持,但我更感兴趣的是查找与继承或合成相关的问题)。

是否存在众所周知的情况,即class N: .. class B: A { }在 C++ 中无法访问 C# 中可能的基类数据(在任何可能的条件下)?


我强烈反对将此问题视为“已回答”。没有提到“内部”,抽象类无法清楚地评估为 C++ 保护构造函数/虚拟构造函数类(并且整个接口与 C++ 不同)。因此,如果我有机会打开它,请不要关闭赏金 - 肯定会有更多差异。

4

2 回答 2

2

我相信你可以找到一整本关于这些东西的书。一个很大的变化是在 C# 中定义一个类时,您只能从一个基类继承。C++ 你可以从多个继承。

是否存在众所周知的情况,其中 C++ 中的 class N: .. class B: A { } 无法访问 C# 中可能的基类数据(在任何可能的条件下)?

如果基类是受保护的或公共的。

protected 关键字是成员访问修饰符。受保护的成员可在其类内和派生类实例中访问。(来源:http: //msdn.microsoft.com/en-us/library/bcd5672a.aspx

于 2013-10-21T15:23:43.193 回答
2

c++支持多重继承,而 C# 不支持,这可能是最大的区别。

于 2013-10-21T15:21:52.580 回答