C++ 「静态数据成员」和「静态成员函数」的简单认识
静态数据成员
格式:
static 数据类型 数据成员
如:
static float sum;
静态数据成员为所有同类对象所共享, 属于类对象的集合, 不属于某一对象, 可以用类名访问静态数据成员:
类名::静态数据成员
如:
float Student::sum = 0.0;
访问静态数据成员
对象名.静态数据成员
对象指针 -> 静态数据成员
静态数据成员初始化: 应在类外单独进行, 而且应在定义对象之前进行. 一般在 main() 函数之前, 类声明之后的特殊地带为它提供定义和初始化.
格式:
数据类型 类名::静态数据成员 = 初始值;
编译系统自己默认赋初值为0;
在类外, 私有静态数据成员不能被直接访问, 必须通过共有的成员函数访问.
静态成员函数
静态成员函数属于整个类.
格式:
static 返回类型 静态成员函数(参数表)
如:
static void showCountSumAve();
调用共有成员函数格式:
类名::静态成员函数名(实参表)
对象.静态成员函数名(实参表)
对象指针 -> 静态成员函数名(实参表)
一般而言, 静态成员函数不访问类中的非静态成员函数. 若确实需要, 只能通过对象名(或对象指针, 对象引用)访问该对象的非静态成员.
非静态成员函数有 this 指针, 而静态成员函数没有 this 指针.
注意与「常数据成员」和「常成员函数」之间别搞混。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· 没有源码,如何修改代码逻辑?
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· DeepSeek 开源周回顾「GitHub 热点速览」
· 记一次.NET内存居高不下排查解决与启示
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了