C++类
类内对象
静态:
#include <iostream>
#include <string>
using namespace std;
class Student {
public:
Student(const string& name1, int age1) {
}
public:
static int m_total; //静态成员变量
/*
static 成员变量属于类,不属于某个具体的对象,即使创建多个对象,也只为 m_total 分配一份内存,所有对象使用的都是这份内存中的数据。当某个对象修改了 m_total,也会影响到其他对象
static 成员变量必须在类声明的外部初始化:
格式:变量类型 类名::变量名 = 初始化值;
static 成员变量和普通的 static 变量类似,都在内存分区中的全局数据区分配内存
*/
private:
string m_name;
int m_age;
};
int Student::m_total = 0; //初始化静态成员变量
//静态成员变量在初始化时不能再加 static,但必须要有数据类型。被 private、protected、public 修饰的静态成员变量都可以用这种方式初始化
//注意:static 成员变量的内存既不是在声明类时分配,也不是在创建对象时分配,而是在(类外)初始化时分配。反过来说,没有在类外初始化的 static 成员变量不能使用
int main()
{
//static 成员变量既可以通过对象来访问,也可以通过类来访问
Student::m_total = 10; //通过类访问
Student stu("张三", 25);
stu.m_total = 20; //通过对象来访问
Student* pstu = new Student("李华", 16);
pstu->m_total = 30; //通过对象指针来访问
cout << Student::m_total << endl;
return(0);
}
参考:https://www.cnblogs.com/liming19680104/p/13522108.html
此时是4
作者:静默虚空
欢迎任何形式的转载,但请务必注明出处。
限于本人水平,如果文章和代码有表述不当之处,还请不吝赐教。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· .NET10 - 预览版1新功能体验(一)