• 5

C++問題

在C++中, CLASS 跟 STRUCT 差不多,所以我才想 STRUCT 是部份繼承了 CLASS的特性.

而沒有全部繼承, 所以我才認為 STRUCT 是 CLASS 的變種.

因為在C中, STRUCT 是沒有像在C++中那麼方便的.

這裡有些說明:
http://wayne.cs.nthu.edu.tw/~roland/computer/cpp/chap4.html

阿福仔仔 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
  • 5
內文搜尋
X
評分
評分
複製連結
Mobile01提醒您
您目前瀏覽的是行動版網頁
是否切換到電腦版網頁呢?