C#vs C ++:继承细节

时间:2013-10-21 15:19:12

标签: c# c++ inheritance porting

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

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

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


我坚决反对将此问题视为“已经回答”。 “内部”上没有任何内容,abstract classes can't be clearly evaluated to C++ protected constructor / virtual constructor classes(并且整个界面与C ++不同)。因此,如果我有机会打开它,请不要关闭赏金 - 肯定必须有更多的差异。

2 个答案:

答案 0 :(得分:2)

c++支持多重继承,而C#并不是最大的差异。

答案 1 :(得分:2)

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

  

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

如果基类受到保护或公开。

  

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