C/C++复习之 静态成员
时间:2019-04-18
本文章向大家介绍C/C++复习之 静态成员,主要包括C/C++复习之 静态成员使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
为了实现一个类的多个对象之间的数据共享,C++提出了静态成员的概念。静态成员包括静态数据成员和静态成员函数。
-
静态成员变量
想在一个类的多个对象之间实现数据共享有两种方法:
1、全局变量
2、静态数据成员
使用全局变量不太安全,所以有了静态成员变量。在一个类中若在一个变量前加上static 这个种变量就称为静态成员变量。静态成员变量属于类,不属于类的某个对象。
static 数据类型 变量名;
静态成员变量的初始化和一般成员变量的初始化不同。静态数据成员变量的初始化在类的对象创建之前就进行了,且在类外单独进行。
#include<iostream>
using namespace std;
class A {
public:
static int num2;
A(int num);
private:
int num1;
};
A::A(int num)
{
this->num1 = num;
}
int A::num2 = 100;
int main()
{
cout << A::num2 << endl;
return 0;
}
准确的说,类的静态成员变量的初始化应该在类的定义之后,main函数之前的空间进行。其格式为:
数据类型 类名::静态成员变量名 = 初始值;
使用静态成员变量的方式:
类名::静态成员名
类的对象.静态成员变量名
类的对象指针->静态成员变量名
需要注意,私有的静态成员,包括静态成员变量和静态成员函数,是不能通过在类外之间访问的,只能通过类的公共成员函数访问。
-
静态成员函数
静态成员函数定义的格式:
static 返回值类型 静态成员函数名(实参表)
静态成员函数的使用方式:
类名::静态成员变量名(实参表)
类的对象.静态成员变量名(实参表)
类的对象指针->静态成员变量名(实参表)
一般情况下,类的静态成员函数主要用来访问类的静态成员变量。
类的静态数据成员函数和一般的成员函数的区别之一:非静态成员函数有this指针,静态成员函数没有this指针。
静态成员变量、静态成员函数是属于类的一部分,而不是对象的一部分。
- Gensim实现Word2Vec的Skip-Gram模型简介快速上手对语料进行分词使用gensim的word2vec训练模型
- React第三方组件4(状态管理之Reflux的使用②TodoList上)
- 机器学习(六)Sigmoid函数和Softmax函数1 Sigmoid函数2 Softmax函数
- React第三方组件4(状态管理之Reflux的使用①简单使用)
- React第三方组件3(状态管理之Flux的使用⑤异步操作)
- 使用yo-get下载视频网站视频或其
- React多页面应用3(webpack4 多页面实现)
- 洛谷P2345 奶牛集会
- React多页面应用2(webpack4 处理CSS及图片,引入postCSS,及图片处理等)
- React多页面应用1(webpack4 开发环境搭建,包括热更新,api转发等)
- 洛谷P2345 奶牛集会
- P2880 [USACO07JAN]平衡的阵容Balanced Lineup
- Python黑客编程3网络数据监听和过滤
- React第三方组件6(状态管理之Mobx的使用⑤异步操作)
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- Aria2 + Rclone 实现离线下载 | 完美脚本配置 | 解决无法上传问题
- alpine使用的避坑指南
- elasticSearch学习(八)
- Python自学成才之路 魔术方法之比较运算符,赋值运算符
- Go语言(golang)新发布的1.13中的Error Wrapping深度分析
- 使用k8s容器钩子触发事件
- Python自学成才之路 魔术方法之属性访问控制
- Python自学成才之路 彻底搞懂python变量作用域
- Python自学成才之路 什么是元类
- 调试 Go 的代码生成
- Kubernetes中的Volume介绍
- Python自学成才之路 终于弄清楚类方法,静态方法的区别了
- Git 版本及版本范围表示法
- python自学成才之路 numpy 基础
- python自学成才之路 文件读写操作