看板 C_and_CPP 關於我們 聯絡資訊
※ 引述《hnaxiorll (fairyland)》之銘言: : 我想問的是在class中明明變數a,b是宣告成private : 但是在自己的class函式中宣告相同的型態,C卻能直接取出來用!? : 這樣不會違反class中private的隱藏性嗎?? : 請大家幫忙解除我這個疑惑 謝謝各位 m( ̄︶ ̄)m 其實設計成這樣的理由很簡單 想像一下你要寫 copy assignment 的時候 Foo& Foo::operator=(const Foo& f) { // copy all members in Foo ... } 如果你只能存取 this 底下的 private 成員,卻不能取得 f 的 private 成員 顯然你無法複製 f 的所有成員 因此你根本無法寫 copy assignment 除了 copy assignment 以外,其它的函式其實也會有類似的情況 因此讓成員函式存取其它同類別物件的 private 成員是必要的 而且成員函式也有責任讓所有同類別物件的內容保持正確而一致 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 219.87.151.2
hnaxiorll:感謝解答\( ̄▽ ̄)/ 06/06 20:24