[問題] 繼承與friend
開發平台(Platform): (Ex: VC++, GCC, Linux, ...)
VC2010
額外使用到的函數庫(Library Used): (Ex: OpenGL, ...)
no
問題(Question):
現在有四個class
class A{
friend C;
private:
int n1;
}
class B:public A{
friend D;
public:
int n2;
}
class C{
A *a;
}
class D:public C{
}
翻成白話文就是 A/C為父類別 B/D為其子類別 C/D可以私用A/B的東西
我問題出在於class C裡面只有class A一個member
但是我的class D裡面想存取A的private 還有C的public
請問有沒有辦法再建構D的時候偷偷把C裡面的A轉成他的小孩B呢?
如果有的話建構子要怎麼改? 我找了好久都找不到QQ
補充說明(Supplement):
實作就是原本A/C指的是BST的Node 與 BSTtree
BSTtree裡只有root的pointer
現在想擴充變成可以search by rank
B/D指的是rNode 與 rBSTtree
(rNode多存一個左子樹的member數 rBSTtree多存一個總node數)
但是我在建構rBSTtree的時候 root的型別還是Node而非 rNode
有沒有辦法在建構的時候就把root的型別換成rNode ?
謝謝指教> <
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 140.114.74.38
※ 編輯: vein828 來自: 140.114.74.38 (05/14 22:51)
→
05/15 03:44, , 1F
05/15 03:44, 1F