首頁 >後端開發 >C++ >C 類別可以包含自身作為成員變數嗎?

C 類別可以包含自身作為成員變數嗎?

Patricia Arquette
Patricia Arquette原創
2024-12-23 05:05:38291瀏覽

Can a C   Class Include Itself as a Member Variable?

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中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn