作者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