C 類別可以互相包含自身作為成員嗎?
在 C 中,定義一個包含自身作為成員的類別是很誘人的表示嵌套結構,如表達式樹。但是,這種方法是不允許的。
推理:
如提供的答案中所述,使用其自己類型的成員變量定義類別將導致無限大的物體。每個 Node 將包含兩個 Node 對象,而 Node 對象則包含兩個以上 Node 對象,依此類推。這會使記憶體分配變得不切實際並導致運行時錯誤。
解決方案:
要解決此問題,需要使用指向類別類型的指標作為成員變數而不是類別類型本身。這允許表示嵌套,同時避免無限遞歸的問題。
考慮以下修改後的定義:
class Node { char *cargo; Node* left; // Pointer to a Node object Node* right; // Another pointer to a Node object };
透過使用指針,我們可以創建一個樹狀結構,而無需運行陷入自我參照問題。
以上是C 類別可以包含自身作為成員變數嗎?的詳細內容。更多資訊請關注PHP中文網其他相關文章!