同名静态成员属性
#include<iostream>
using namespace std;
class Base
{
public:
static int m_A;
};
int Base::m_A = 100; //静态成员 类内声明,类外初始化
class Son :public Base
{
public:
static int m_A;
};
int Son::m_A = 200; //静态成员 类内声明,类外初始化
int main()
{
//通过对象访问数据
Son s;
cout << "son_m_A=" << s.m_A << endl;
cout << "base_m_A=" << s.Base::m_A << endl;
//通过类名访问数据(只有静态才可以这样)
cout << "son_m_A=" << Son::m_A << endl;
cout << "base_m_A=" << Base::m_A << endl; //父类直接拿到数据
cout << "son_m_A=" << Son::Base::m_A << endl;
//第一个::代表通过类名的方式来访问
//第二个::代表访问父类作用域下的m_A。
return 0;
}
同名静态成员函数
#include<iostream>
using namespace std;
class Base
{
public:
static int m_A;
static void fun()
{
cout << "base的fun()" << endl;
}
static void fun(int a)
{
cout << "base的fun(int a)" << endl;
}
};
int Base::m_A = 100; //静态成员 类内声明,类外初始化
class Son :public Base
{
public:
static int m_A;
static void fun()
{
cout << "son的fun()" << endl;
}
};
int Son::m_A = 200;
int main()
{
//通过对象访问
Son s;
s.fun();
s.Base::fun();
//通过类名访问
Son::fun();
Son::Base::fun();
Son::Base::fun(100);
return 0;
}