C++ 「静态数据成员」和「静态成员函数」的简单认识

静态数据成员

格式:

static 数据类型 数据成员
如:
static float sum;

静态数据成员为所有同类对象所共享, 属于类对象的集合, 不属于某一对象, 可以用类名访问静态数据成员:

类名::静态数据成员
如:
float Student::sum = 0.0;

访问静态数据成员

对象名.静态数据成员
对象指针 -> 静态数据成员

静态数据成员初始化: 应在类外单独进行, 而且应在定义对象之前进行. 一般在 main() 函数之前, 类声明之后的特殊地带为它提供定义和初始化.

格式:

数据类型 类名::静态数据成员 = 初始值;

编译系统自己默认赋初值为0;

在类外, 私有静态数据成员不能被直接访问, 必须通过共有的成员函数访问.

静态成员函数

静态成员函数属于整个类.

格式:

static 返回类型 静态成员函数(参数表)
如:
static void showCountSumAve();

调用共有成员函数格式:

类名::静态成员函数名(实参表)  
对象.静态成员函数名(实参表)  
对象指针 -> 静态成员函数名(实参表)

一般而言, 静态成员函数不访问类中的非静态成员函数. 若确实需要, 只能通过对象名(或对象指针, 对象引用)访问该对象的非静态成员.

非静态成员函数有 this 指针, 而静态成员函数没有 this 指针.

注意与「常数据成员」和「常成员函数」之间别搞混。


posted @   double64  阅读(295)  评论(0编辑  收藏  举报
编辑推荐:
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· 没有源码,如何修改代码逻辑?
阅读排行:
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· DeepSeek 开源周回顾「GitHub 热点速览」
· 记一次.NET内存居高不下排查解决与启示
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
点击右上角即可分享
微信分享提示