作者BVB (BVB)
看板EE_DSnP
标题Re: [注意] 物件导向程式的基本意义
时间Wed May 21 11:57:55 2008
我也有iterator这个class看不到_dummy的问题
依据老师的说明
要抓到_dummy一定要让iterator看到启动他的BSTree物件
我想到的是让iterator的constructor吃一个指标BSTree<T>*
然後在任何时候要宣告一个BSTree<T>::iterator的物件
都必须要把this丢到他的constructor里面...
我想这样应该是可以解决
可是这样的话感觉很鸟...
不知道有没有方法让iterator的constructor看到呼叫他的是哪颗BSTree?
(而不是BSTree从外面告诉iterator)
另外我想不通为什麽要在一个class里宣告另一个class...
就我看到的情况
在class里面的class也不会比外面的class有多少特权...
也同样不能去access别人的private data member
也不能使用别人的data member (还是要透过物件)
那我把iterator宣告在外面不是也完全一样吗??
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 140.112.174.136
1F:→ BVB:不行这样也不能解决...adtTest.h里面的iterator没有这样宣告.. 05/21 12:01
2F:推 ric2k1:我之前看过有人是这样做的: (1) 在求 begin(), end() 时将 05/21 12:40
3F:→ ric2k1:(BSTree*)this 传给 iterator, (2) 在iterator::operator = 05/21 12:41
4F:→ ric2k1:中确定 BSTree* 有被 copy 过去, (3) iterator 的 05/21 12:41
5F:→ ric2k1:constructor 多传 BSTree* 进去. 05/21 12:42
6F:推 ric2k1:以上的作法的挑战是你不应该去更改 adtTest.h. 不过如果你 05/21 12:42
7F:→ ric2k1:想通了的话也是蛮合理的... 05/21 12:43
8F:→ BVB:终於解决了... 05/21 15:23