在采用继承时,当子类继承父类时,遇到同名的属性或函数时,父类中的属性或函数需要多做一步处理
#include <iostream>
#include <string>
using namespace std;
//基类
class Base
{
public:
static int m_A; //静态变量类内声明
static void func()
{
cout << "Base - static void func()" << endl;
}
};
int Base::m_A = 100; //静态变量类外定义
class Son : public Base
{
public:
static int m_A;
static void func()
{
cout << "Son - static void func()" << endl;
}
};
int Son::m_A = 200;
int main()
{
//探寻同名静态属性的处理
//通过对象访问
Son s;
cout << "通过对象访问" << endl;
cout << "子类的m_A值为" << s.m_A << endl;
cout << "子类继承中的同名m_A值为" << s.Base::m_A << endl;
//通过类名访问
cout << "通过类名访问" << endl;
cout << "子类的m_A值为" << Son::m_A << endl;
cout << "子类继承中的同名m_A值为" << Son::Base::m_A << endl;
//探寻同名静态函数的处理
cout << "通过对象访问" << endl;
s.func();
s.Base::func();
cout << "通过类名访问" << endl;
Son::func();
Son::Base::func();
}
此外补充一点通过cmd查看cpp文件类的大小
- 输入工程所在盘符我这里是E盘
- 复制cpp所在的路径 E:\Study\CPP\My_Project\My_Project
- 输入cl /d1 reportSingleClassLayoutSon 多继承语法.cpp