<分区>
C++ 切片是否也适用于其他语言,例如 Java/C#?
标签 java c# c++ object-slicing
<分区>
C++ 切片是否也适用于其他语言,例如 Java/C#?
最佳答案
切片的意思是,如果你将一个子类实例赋值给一个父类变量,子类包含的额外信息被“切片”掉,因为父类变量没有额外的空间来存储子类的这些额外信息。
这在 Java 和 C# 中都不会发生,因为所有对象变量都是引用;当您将子类实例分配给父类(super class)变量时,您实际上只是复制了引用;子类对象本身保持不变。
关于java - Java/C# 中的 C++ 切片,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/536267/