C++ 中的物件切片
當您將派生類的物件分配給基類的例項時,就會使用物件切片來描述這種情況。這會導致派生類物件的方法和成員變數丟失。這稱為資訊被切片移除。例如,
class Foo {
int a;
};
class Bar : public Foo {
int b;
}由於 Bar 擴充套件了 Foo,現在它有兩個成員變數 a 和 b。因此,如果您建立一個型別為 Bar 的變數 bar,然後建立一個型別為 Foo 的變數並分配 bar,那麼您將在過程中丟失成員變數 b。例如,
Bar bar; Foo foo = bar;
在這種情況下,bar 中有關 b 的資訊丟失了。這被稱為成員切片。
廣告
資料結構
網路
RDBMS
作業系統
Java
iOS
HTML
CSS
Android
Python
C 語言
C++
C#
MongoDB
MySQL
JavaScript
PHP