看板 C_and_CPP 關於我們 聯絡資訊
從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
loveflames: 並沒有限static成員 12/23 20:48
loveflames: 黃字那行是說要用父類成員 12/23 20:49
loveflames: 還有一件事,函數不是virtual,表示子類不該改寫 12/23 20:53
s4300026: 他這樣寫應該是 “遮蔽” = new,編譯器應該給warning 12/24 10:32
s4300026: 你有想過override後要怎麼使用父類別的方法嗎,就是用:: 12/24 10:34
hunandy14: 詳細表明要使用哪個類別的方法 12/24 11:49