1

次のように、スーパークラスをサブクラスに割り当てると、オブジェクトの追加のサブクラス固有の部分が切り落とされることを理解しています。

Sub mySub;
Super mySuper = &mySub;
// mySuper DOESN'T contain any sub class behaviour

もしそうなら:

Sub mySub;
Super& mySuper = &mySub;
// mySuper DOES contain the sub class behaviour

しかし、参照が機能する理由とオブジェクトが機能しない理由がわかりません。

その理由は、参照なしでオブジェクトをコピーする必要があるためだと見てきましたが、なぜこれがスライスにつながるのかまだわかりませんか?

また、参照が機能する理由もわかりません。Sub オブジェクトの先頭へのスーパー参照をポイントしていますが、コンパイラはスーパー オブジェクトの大きさを認識しているため、スーパー パーツ (オブジェクトのサブ クラス コンポーネントに対応) を超えてメモリを関連付けることは期待できません。スーパーリファレンスに?

4

1 に答える 1