5

C++ スライシングは、Java/C# などの他の言語にも適用できますか?

4

1 に答える 1

13

スライスとは、サブクラス インスタンスをスーパークラス変数に割り当てる場合、サブクラスに含まれる追加情報が「スライス」されることを意味します。これは、スーパークラス変数には、サブクラスのこの追加情報を格納するための余分なスペースがないためです。

すべてのオブジェクト変数が参照であるため、これは Java や C# では発生しません。サブクラスのインスタンスをスーパークラスの変数に割り当てるときは、実際には参照をコピーするだけです。サブクラス オブジェクト自体はそのまま残ります。

于 2009-02-11T10:42:32.580 に答える