阿福仔仔 wrote:
不過 union 並非只是單純考慮記憶體的消耗問題
有時候也是為了便利跟可讀性
這一點我不確定. 與 struct 或 class 比起來, union 的可讀性並沒有更好.甚至在除錯時, 使用 union 會有不必要的 confusion. 我認為 union 的存在完全是為了避免空間的浪費.
也絕對不是很少用到
這我十分同意, 最少, 在 Windows API 裡 union 到處都是, OLE automation 的 VARIANT 是一個例子. Shell API 裡的 PROPSHEETHEADER 是另一個例子.
http://starterx.blogspot.com
libraleu wrote:
在C++中, CLASS 跟 STRUCT 差不多,所以我才想 STRUCT 是部份繼承了 CLASS的特性.
而沒有全部繼承, 所以我才認為 STRUCT 是 CLASS 的變種.
"沒有全部繼承" 這段話, 我不確定你的本意是什麼, 如果你的意思是 "struct 不能繼承" 那是不正確的. struct 甚至支援 private virtual inheritence. 在實作上, 除了 struct 預設的存取等級是 public 之外, 與 class 無異. 這樣的 code 是合法的 (雖然大概沒有意義)
struct foo
{
int i;
private:
int k;
};
struct bar : private virtual foo
{
int j;
};
http://starterx.blogspot.com
內文搜尋

X