史詩級巨坑---C++類對象不能一行定義多個同類型變量變量

今天寫數據結構的時候,在二叉樹的節點類中聲明瞭幾個節點類對象,如下是代碼c++

`
private:
BinNodePosi(T) parent,l_Child, r_Child;
//BinNode<T>* parent, l_Child, r_Child;
BinNodePosi(T) binNode;
`

而後發現編譯時總是報錯,具體錯誤在下面:image.png
以後我就開始查,是否是由於我在類模板初始化的時候,由於聲明瞭類指針,因此編譯器須要一直給變量預分配內存空間,而後由於該類對象的實例化時又在實例化類的時候實例化其中的對象,這樣就會形成無限遞歸情況,因此編譯器會報錯。可是我發現並非這個問題,由於個人鏈表的節點類也是這麼寫的,可是沒有出錯。糾結了三個小時,我驚人的發現,是由於我在代碼的第一行同時聲明瞭多個同類型的對象。當我改正以後,變成下面這樣:數據結構

`
BinNodePosi(T) parent;
BinNodePosi(T) l_Child;
BinNodePosi(T) r_Child;
`

錯誤驚人的消失了。真的吐血了,我沒搞清楚這算什麼,難道是c++的新標準不能一行同時聲明多個同類變量嗎?
因而我又在main函數中試驗了一下,發現是能夠的,難道是隻能不能在類中寫這樣的東西嗎?苦於水平有限,未能發覺其中奧妙,或等有緣人爲我解答了!反正之後我寫東西都會注意這一點的。函數

相關文章
相關標籤/搜索