当前位置: 首页 > news >正文

C++系列-类和对象-静态成员

类和对象-静态成员

  • 静态成员
    • 静态成员变量
    • 静态成员函数

静态成员

  • 静态成员就是在成员变量或者是成员函数前面加上static关键字。

静态成员变量

  • 所有对象共享同一份数据
  • 在编译阶段分配内存
  • 类内声明,类外初始化
  • 可以通过对象或者类名进行访问。
  • 静态成员变量也具有访问权限。
code:#include<iostream>using namespace std;class Person{public:static int age;			// 类内声明private:static int height;
};};int Person::age = 18;		//类外初始化,必须要加类型int Person::height = 180;void main(){Person p1;cout << p1.age << endl;		// 通过对象访问//cout << p1.height << endl;	private权限的静态变量类外不能访问Person p2;p2.age = 25;				// 共享数据被更改cout << p1.age << endl;cout << Person::age << endl;	// 通过类名访问system("pause");}
result:182525

静态成员函数

  • 所有对象共享同一个函数
  • 可以通过对象或者类名进行访问。
  • 静态成员函数只能访问静态的成员变量。
  • 静态成员函数也是有访问权限的。
code:#include<iostream>using namespace std;class Person{public:static int age;int name;static void show_info(){cout << "static void show_info()被调用" << endl;cout << "静态成员函数中访问静态成员变量age=" << age << endl;//name = "Jack";		// 静态成员函数不能访问非静态成员变量,因为无法区分是哪一个对象的成员变量}};int Person::age = 18;		//必须要加类型void main(){Person p1;cout << p1.age << endl;p1.show_info();cout << endl;Person p2;p2.age = 25;		cout << p1.age << endl;p2.show_info();			// 通过对象名访问静态成员函数cout << endl;Person::show_info();	// 通过类名访问静态成员函数system("pause");}
result:18static void show_info()被调用1825static void show_info()被调用25static void show_info()被调用25
http://www.lryc.cn/news/132044.html

相关文章:

  • SAP MM学习笔记26- SAP中 振替转记(转移过账)和 在库转送(库存转储)2- 品目Code振替转记 和 在库转送
  • 【Python机器学习】实验13 基于神经网络的回归-分类实验
  • 【数据结构】二叉树的链式结构的实现 -- 详解
  • 【C语言】什么是结构体内存对齐?结构体的大小怎么计算?
  • 【Redis】Redis中的布隆过滤器
  • 接口测试 —— Jmeter 参数加密实现
  • Linux c语言字节序
  • 批量将excel中第5列中内容将人名和电话号码进行分列
  • WPF DataGrid columns表头根据数据集动态动态生成Demo
  • 1339. 分裂二叉树的最大乘积
  • 【C++】Stack和Queue
  • Maven之tomcat7-maven-plugin 版本低的问题
  • 在项目中如何解除idea和Git的绑定
  • AGI 在网易云信的技术提效和业务创新
  • 线性代数的学习和整理9(草稿-----未完成)
  • React的useReducer与Reudx对比
  • 深度学习环境搭建 cuda、模型量化bitsandbytes安装教程 windows、linux
  • pythond assert 0 <= colx < X12_MAX_COLS AssertionError
  • js简介以及在html中的2种使用方式(hello world)
  • vsCode使用cuda
  • ubuntu无法使用apt命令时怎么安装库
  • 防火墙firewall
  • 拿来即用,自己封装的 axios
  • Hadoop小结(下)
  • 使用老北鼻AI免费GPT对话解决gun make安装和解析iso9660的问题
  • shell脚本语句
  • 【LeetCode】2235.两整数相加
  • springboot sl4j2 写入日志到mysql
  • 用 PyTorch 编写分布式应用程序
  • 空间分析专属 Python 学习资料