什么可以算作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 ++不同)。因此,如果我有机会打开它,请不要关闭赏金 - 肯定必须有更多的差异。
答案 0 :(得分:2)
c++
支持多重继承,而C#并不是最大的差异。
答案 1 :(得分:2)
我相信你能找到关于这些东西的全书。一个重大变化是在C#中定义类时,只能从一个基类继承。 C ++,你可以从多个继承。
是否有一个众所周知的情况,其中N类:...... B类:A {} 在C ++中无法访问基类数据(在任何可能的情况下) 条件)在C#中可能吗?
如果基类受到保护或公开。
protected关键字是成员访问修饰符。受保护的成员 可以在其类和派生类实例中访问。 (来源:http://msdn.microsoft.com/en-us/library/bcd5672a.aspx)