[問題] "::"符號的使用

看板C_and_CPP (C/C++)作者 (gecer)時間8年前 (2017/12/23 20:26), 8年前編輯推噓2(204)
留言6則, 3人參與, 8年前最新討論串1/1
從C++ 的參考資料 namespace 及 class內的static member 才可以用 "::" 但是下列的code 上色部分卻可使用 且指向class base的member function 想請問 "::"的使用規則? #include <iostream> using namespace std; class MyC { public: int getValue() { return 1; } // static member function }; class MyC1:public MyC { public: int getValue() { return 2; } // static member function }; int main() { MyC c; MyC1 c1; MyC1 *p; p=&c1; cout<<p->getValue()<<endl; cout<<p->MyC::getValue()<<endl; //why :: could be used here return 0; } -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 122.121.28.185 ※ 文章網址: https://www.ptt.cc/bbs/C_and_CPP/M.1514031967.A.7FF.html ※ 編輯: gecer (122.121.28.185), 12/23/2017 20:27:23

12/23 20:48, 8年前 , 1F
並沒有限static成員
12/23 20:48, 1F

12/23 20:49, 8年前 , 2F
黃字那行是說要用父類成員
12/23 20:49, 2F

12/23 20:53, 8年前 , 3F
還有一件事,函數不是virtual,表示子類不該改寫
12/23 20:53, 3F

12/24 10:32, 8年前 , 4F
他這樣寫應該是 “遮蔽” = new,編譯器應該給warning
12/24 10:32, 4F

12/24 10:34, 8年前 , 5F
你有想過override後要怎麼使用父類別的方法嗎,就是用::
12/24 10:34, 5F

12/24 11:49, 8年前 , 6F
詳細表明要使用哪個類別的方法
12/24 11:49, 6F
文章代碼(AID): #1QFajVV_ (C_and_CPP)
文章代碼(AID): #1QFajVV_ (C_and_CPP)