[问题] "::"符号的使用

楼主: 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