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

作者: gecer (gecer)   2017-12-23 20:26:04
從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;
}
作者: loveflames (咕啾咕啾魔法陣)   2017-12-23 20:48:00
並沒有限static成員黃字那行是說要用父類成員還有一件事,函數不是virtual,表示子類不該改寫
作者: s4300026 (s4300026)   2017-12-24 10:32:00
他這樣寫應該是 “遮蔽” = new,編譯器應該給warning你有想過override後要怎麼使用父類別的方法嗎,就是用::
作者: hunandy14 (Charlott.HonG)   2017-12-24 11:49:00
詳細表明要使用哪個類別的方法

Links booklink

Contact Us: admin [ a t ] ucptt.com