C++;Java/C中的切片# C++也可以应用到其他语言中,比如爪哇/C*Y.切片,意思是如果你给子类实例赋值为超类变量,那么子类所包含的额外信息就被“切片”掉了,因为超类变量没有额外的空间来存储这个子类的额外信息。

C++;Java/C中的切片# C++也可以应用到其他语言中,比如爪哇/C*Y.切片,意思是如果你给子类实例赋值为超类变量,那么子类所包含的额外信息就被“切片”掉了,因为超类变量没有额外的空间来存储这个子类的额外信息。,java,c#,c++,object-slicing,Java,C#,C++,Object Slicing,这在Java和C#中都不会发生,因为所有对象变量都是引用;当您将一个子类实例分配给一个超类变量时,您实际上只是复制引用;子类对象本身保持不变。我的术语有点不正确(现在更正了),但我认为我的观点不正确。如果我仍然非常不正确,请您更正。您的评论没有太大帮助,Duffymo.C#有值类型。我认为在c#中,你的说法是不正确的(?我是c#noob。所以我可能在这里错了),但在java中,这当然是非常正确的。啊,从来没有提到过。你不能从C中的另一个结构派生出一个结构,你是对的。关于C值类型,即结构,我的说法

这在Java和C#中都不会发生,因为所有对象变量都是引用;当您将一个子类实例分配给一个超类变量时,您实际上只是复制引用;子类对象本身保持不变。

我的术语有点不正确(现在更正了),但我认为我的观点不正确。如果我仍然非常不正确,请您更正。您的评论没有太大帮助,Duffymo.C#有值类型。我认为在c#中,你的说法是不正确的(?我是c#noob。所以我可能在这里错了),但在java中,这当然是非常正确的。啊,从来没有提到过。你不能从C中的另一个结构派生出一个结构,你是对的。关于C值类型,即结构,我的说法是不正确的。对于类,它仍然是正确的。这是重复的。Raj,买一本Scott Meyer的优秀著作《有效C++》(),它对这个问题和许多其他C++的问题进行了许多精彩的讨论。干杯,这不是一个精确的复制品。假定的副本对C#或Java没有任何要求。