通过派生类的类名(::)+ 指定作用域(::)访问基类同名静态成员函数!
#include <iostream>
using namespace std;
class Base {
public:
static void func()
{
cout << "Base - 同名静态成员函数 tatic void func()" << endl;
}
static int m_A;
};
int Base::m_A = 100; // :: 表示作用域,通过区分作用域来读写对应的数据
class Son : public Base {
public:
static void func()
{
cout << "Son - 同名静态成员函数 tatic void func()" << endl;
}
static int m_A;
};
int Son::m_A = 200; // :: 表示作用域,通过区分作用域来读写对应的数据
int main() {
cout << "通过派生类的对象,访问基类同名静态成员函数: " << endl;
Son s;
s.func();
s.Base::func();
cout << "通过派生类的类名(::)+ 指定作用域(::)访问基类同名静态成员函数: " << endl;
Son::func();
Son::Base::func();
//出现同名,子类会隐藏掉父类中所有同名成员函数,因此需要加作作用域 :: 访问
return 0;
}
输出结果为;
通过派生类的对象,访问基类同名静态成员函数:
Son - 同名静态成员函数 tatic void func()
Base - 同名静态成员函数 tatic void func()
通过派生类的类名(::)+ 指定作用域(::)访问基类同名静态成员函数:
Son - 同名静态成员函数 tatic void func()
Base - 同名静态成员函数 tatic void func()