看板 C_and_CPP 關於我們 聯絡資訊
這是寫程式時,遇到的問題 我宣告兩個class,分別叫A_1, B_1 A_1是B_1的friend class 我在A_1裡放置B_1型態的指標,以存取B_1的成員 這是存取的方式 現在我再宣告兩個class,分別叫A_2,B_2 A_2繼承A_1,B_2繼承B_1 我想讓A_2存取B_1的成員 請問,有什麼好方法嗎??? 下面這個方法除外 => 不能在B_1裡,宣告A_2是friend class 或 function -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 123.193.76.190 ※ 編輯: wudidog 來自: 123.193.76.190 (05/23 06:52)
LPH66:請爸爸向他的朋友要資料... 05/23 08:50
有試,只是不知道是不是你說的方式 因為code有點長,我用文字說明 B_1 裡有 int v_b這個 protected變數 A_1 裡有 B_1 *v_a這個 protected變數 有A_1裡的f_a()函數,可以存取v_a->v_b,這一定沒問題 但A_2裡的f_b()函數就無法存取v_a->v_b compiler會 error說, B_1::v_b是protected ※ 編輯: wudidog 來自: 123.193.76.190 (05/23 09:46)
ilovebbs:是要在A_1寫Get或Set,A_2再去使用吧,不是直接拿v_a來用 05/23 11:06
QQ29:compiler看到你在A_2使用 別人的protected 就不會讓你過阿 05/23 12:29
QQ29:照L大和I大說的 利用老爸v_a 去存取B1的public的get or set吧 05/23 12:32
QQ29:阿講錯 就是I大說的 A1要寫get set去存取你的v_b 05/23 12:33
sunneo:v_v => v_A => v_a => v_va .... A_A 05/23 16:21
sunneo:就只好用父類別來幫忙產生getter/setter囉 05/23 16:22
wudidog:感謝各位…突然頓悟了 ^ ^ 05/24 07:16