C 類別可以將自己引用為成員嗎?
想像一個場景,您正在開發一個 C 程式並希望建立表示式樹的類別。在此類中,您希望定義以後綴順序遍歷和評估樹的方法。然而,當你深入實現時,你會遇到一個令人困惑的問題:
`
<br>class Node {<p>};<br></p><p>您沮喪地意識到您無法將“左”和“右”聲明為“節點”類型。這就提出了一個基本問題:C 類別可以將自己包含為成員嗎? </p><p><strong>揭示限制</strong></p><p>這個問題的答案是響亮的「不」。將成員宣告為「節點」類型會建立無限遞歸。每個 Node 將包含另外兩個 Node 對象,而後者將包含另外兩個 Node 對象,如此循環往復。這種遞歸定義會導致物件無限大小,根本不可行。 </p><p><strong>引入指標來拯救</strong></p><p>儘管類別不能直接將自身引用為成員,它仍然可以透過指標來維護對自身的引用。以下是解決此問題的類別的修訂版本:</p><p>`</p><pre class="brush:php;toolbar:false"><br>class Node {<p>};<br></p>
透過使用指針,您可以維護一個樹結構,其中每個節點引用同一類中的其他節點。這使您可以有效地遍歷和評估表達式樹,而不會遇到無限遞歸。
以上是C 類別可以將自身包含為成員變數嗎?的詳細內容。更多資訊請關注PHP中文網其他相關文章!