看板 C_and_CPP 關於我們 聯絡資訊
問題是這樣的 class A { friend B; public: f1() f2() private: A() _f1() ... _f100() } class A 只有2個member function是public 有快100個是private 而class B也只有用到A的3個private member function 其中一個是ctor 另外2個只是單純private member data的set介面 奇怪的設計,看起來A就是只給B用, 不弄成inner class有可能是A會長很大,或是以後可能還會給別人用 不過我想問的是c++有辦法利用friend或什麼簡單的修改指定那3個private給B就好嗎? -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 220.130.177.154 ※ 文章網址: https://www.ptt.cc/bbs/C_and_CPP/M.1456975190.A.C84.html
Caesar08: 可以,你可以只指定某些function為friend給B 03/03 11:28
Arton0306: 只看到A全部的private都可被access的方法 請問你指的是 03/03 12:28
Arton0306: 哪一段?@@ 03/03 12:28
Arton0306: 1講的是B的某些function可用A的private 2是non-member 03/03 12:32
Arton0306: 可用A的private 但我想做的是B可用A的部份private 03/03 12:33
Caesar08: 抱歉看錯。 如果做一個C,讓C只有那3個function 03/03 12:55
Caesar08: 再讓A friend給C,但不要friend給B,然後C friend給B 03/03 12:55
Caesar08: 讓B只能透過C幫忙,這樣呢? 03/03 12:56
twitcha101: friend function?? 03/03 13:19
Arton0306: 感謝C大和t大 應該都可以 只是介面變了會動到B的code 03/03 13:38
testPtt: 就改成非private 03/03 13:38
Arton0306: 最後我想 這份code本來就有點麻煩 還是不要動好了XD 03/03 13:41
Arton0306: A因為ctor只有friend B能用 所以private和public沒差 03/03 13:45
dritchie: pimpl? 03/04 02:12