看板 C_and_CPP 關於我們 聯絡資訊
問題(Question): private 繼承來的 public function 是否不能在類別外被呼叫 ? 預期的正確結果(Expected Output): 可以編譯過 錯誤結果(Wrong Output): error: ‘void Layer::SetNode(int)’ is inaccessible 補充說明(Supplement): void Layer::SetNode(int) 以 public 宣告在 Base Class Derived class 為 private 繼承 想在物件之外從 Derived class 呼叫 例如: ptrDerived->SetNode(5) //is inaccessible 這樣是不合法的嗎? -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 106.1.208.174 ※ 文章網址: https://www.ptt.cc/bbs/C_and_CPP/M.1483174549.A.6F5.html
ko27tye: 你用private繼承 base class的成員在derived class內都會 12/31 17:33
ko27tye: 變成private 12/31 17:33
(大驚!!) 我以為 private 繼承是可以繼承最多成員,但不改變存取權限。 ※ 編輯: deo2000 (106.1.208.174), 12/31/2016 17:44:47
nick5130: 你這個說法的話是public繼承 不會改變原本權限 12/31 18:08
nick5130: protect繼承是public改protect 其餘一樣 12/31 18:08
nick5130: private繼承如一樓所述 有誤請指正 12/31 18:09
pornstar: 樓上, 我怎記得用public繼承也會降成protected? 01/01 06:38
pornstar: 查了一下, 原來是我搞錯了~ 沒事~ 01/01 06:42
friends29: 有一張九宮格圖把各種情況整理出來 股溝private public 01/01 13:33
friends29: inheritance的圖片 01/01 13:33