什麼是 C++ 或 Java 中的物件截斷?


物件截斷用於描述將一個派生類的物件賦給一個基類的例項的情況。這會導致派生類物件的類方法和成員變數丟失。這被稱為資訊被截斷。例如,

class Foo {
   int a;
};
   class Bar : public Foo {
   int b;
};

由於 Bar 繼承了 Foo,因此它現在有 2 個成員變數 a 和 b。因此,如果你建立型別為 Bar 的變數 bar 並建立型別為 Foo 的變數然後賦給 bar,你會在過程中丟失成員變數 b。例如,

Bar bar;
Foo foo = bar;

在這種情況下,bar 中有關 b 的資訊丟失了。這被稱為成員截斷。

更新日期: 30-7-2019

2K+ 瀏覽量

啟動您的 職業

完成課程以獲得認證

開始
廣告
© . All rights reserved.