作者Hrothgar (小米....超小的....)
看板EE_DSnP
標題Re: [情報] 關於 class 裡面的 class
時間Sat May 23 01:34:41 2009
關於BSTree裡的iterator,如果要使用 BSTree 的member function or data member
可以在iterator 裡建一個 BSTree* _b...
來 使用。
可是遇到一個蠻困惑的問題,就是不知道怎麼 initialize這個 _b....
照老師的說法,似乎是要在外面initialize它@@
可是 我在BSTree 裡 initialize iterator 時
是這樣 initialize : iterator tmp(_node,this)
因為我想說,會呼叫這個class的 應該是_container本身。
結果compile一直不給過QQ~
../../include/bst.h:111: error: invalid conversion from 'const
BSTree<AdtTestObj>* const' to 'BSTree<AdtTestObj>*'
../../include/bst.h:111: error: initializing argument 2 of
'BSTree<T>::iterator::iterator(BSTreeNode<T>*, BSTree<T>*) [with T =
AdtTestObj]'
可以請教高手們是怎麼解決的嗎@@?
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 140.112.4.234
1F:推 ric2k1:const_cast<BSTree<T>*>(this) 05/23 01:39
2F:→ Hrothgar:謝謝教授!!! 可是可以請問這是為什麼嗎@@ _container 05/23 02:31
3F:→ Hrothgar:不是const啊@@ 05/23 02:31
4F:推 WSzc:這個我之前也卡超久的 你可以看看2035 1282 重點是copy const 05/23 02:58
5F:→ WSzc:-ructor要多assign BStree<T>*的變數給它 然後在begin跟end傳 05/23 03:00
6F:→ WSzc:(BSTree<T>*)this給iterator 這樣adtTest.h的iterator就能藉 05/23 03:05
7F:→ WSzc:由copy constructor拿到class BSTree的object 就可以用他的 05/23 03:06
8F:→ WSzc:data member 05/23 03:06
9F:→ Hrothgar:可是我現在遇到的問題是 我想要在建一個 iterator時 05/23 13:16
10F:→ Hrothgar:就透過constructor 讓它default construct@@ 05/23 13:16
11F:→ Hrothgar:現在就卡在這裡.....0rz... 05/23 13:17
12F:推 Trumen:回二樓 應該是你的begin()和end()是const function的關係 05/23 13:21
13F:推 yehes2001:真人真事真是帥哥一位 05/23 13:39
14F:→ Hrothgar:哦哦哦!!! 05/23 13:43
15F:→ Hrothgar:吳柏辰真男人啊!!!! 05/23 13:43
16F:→ Hrothgar:但是 default constructor的問題還是沒解決..0rz... 05/23 13:44