文章目录
- 一、继承机制中派生类中的 static 关键字
- 二、完整代码示例
一、继承机制中派生类中的 static 关键字
1、子类继承父类静态成员
子类继承父类静态成员 : 父类 ( 基类 ) 中 使用 static 关键字 定义的 静态成员变量 , 可以被所有的 子类 ( 派生类 ) 共享 ;
2、父类静态成员访问控制权限的改变
继承自 父类的 静态成员变量 , 仍然遵循 继承中 子类的 访问控制特性 ,
- public 公有继承 : 父类成员 在 子类 中 , 访问控制权限 不变 , 共有 和 保护成员 可以在子类访问 , 私有成员不可在子类中访问 ;
- 父类中的 public 成员 仍然是 public 成员 ;
- 父类中的 protected 成员 仍然是 protected 成员 ;
- 父类中的 private 成员 仍然是 private 成员 ;
- protected 保护继承 : 父类成员 在 子类 中 , 访问控制权限 变为 protected , 私有成员不可在子类中访问 ;
- 父类中的 public 成员 变为 子类中的 protected 成员 ;
- 父类中的 protected 成员 仍然是 protected 成员 ;
- 父类中的 private 成员 仍然是 private 成员 ;
- private 私有继承 : 父类成员 在 子类 中 , 所有成员的访问控制权限 变为 private , 基类的 所有成员 都不可在子类中访问 ;
- 父类中的 public 成员 变为 子类中的 private 成员 ;
- 父类中的 protected 成员 变为 子类中的 private 成员 ;
- 父类中的 private 成员 仍然是 private 成员 ;
3、子类如何访问父类静态成员
子类中 使用
父类类名 :: 静态成员名
Parent::c = 20;
或
子类类名 :: 静态成员名
Child::c = 40;
或
对象名.静态成员名
child.c = 30;
的方式 , 访问 继承自 父类的 静态成员 ;
4、静态成员使用要点
参考 【C++】静态成员变量 ( 静态成员变量概念 | 静态成员变量声明 | 静态成员变量初始化 | 静态成员变量访问 | 静态成员变量生命周期 ) 博客 , 静态成员需要
- 先在类中定义静态变量 ,
class Parent {
public:
// 父类静态成员
static int c;
};
- 然后在外部声明 并进行初始化 , 该步骤的作用是 告诉编译器 , 为 静态变量 分配内存 , 否则不分配内存 编译会报错 ;
// 声明并初始化静态变量
// 如果没有该操作 , 静态成员不可用
int Parent::c = 10;
之后 , 才能使用 类的 静态成员 , 如果没有在类外部初始化 , 该静态成员是无法使用的 ;
二、完整代码示例
代码示例 :
#include "iostream"
using namespace std;
class Parent {
public:
// 父类静态成员
static int c;
};
// 声明并初始化静态变量
// 如果没有该操作 , 静态成员不可用
// 主要作用是告诉编译器为静态变量分配内存
int Parent::c = 10;
class Child : public Parent {
public:
void print()
{
// 类内部使用 Parent::c 或 c 访问静态变量
cout
执行结果 :
Parent::c = 10 , c = 10
Parent::c = 20 , c = 20
Parent::c = 30 , c = 30
Parent::c = 40 , c = 40
Press any key to continue . . .
服务器托管,北京服务器托管,服务器租用 http://www.fwqtg.net
机房租用,北京机房租用,IDC机房托管, http://www.fwqtg.net
相关推荐: 基于 prefetch 的 H5 离线包方案 | 京东云技术团队
前言 对于电商APP来讲,使用H5技术开发的页面占比很高。由于H5加载速度非常依赖网络环境,所以为了提高用户体验,针对H5加载速度的优化非常重要。离线包是最常用的优化技术,通过提前下载H5渲染需要的HTML/JS/CSS资源,加载时直接使用本地缓存资源避免额外…