C++ 静态成员(一)

一、静态成员变量定义

静态成员变量是属于类的成员变量,而不是属于类的实例的。静态成员变量的特点如下:

  1. 所有类的实例共享同一个静态成员变量,只有一份内存空间。
  2. 静态成员变量在编译时分配内存,直到程序结束时才会被释放。
  3. 静态成员变量可以通过类名直接访问,也可以通过类的实例访问。
  4. 静态成员变量必须在类外初始化,可以在类外初始化,也可以在类内初始化。

代码示例:

cpp 复制代码
#include <iostream>
#include <string>
using namespace std;

//在类的声明中使用static关键字声明静态成员变量。
class MyClass{
    public:
        MyClass(){}
        static int staticVar;
};

//在类外初始化静态成员变量
int MyClass::staticVar = 0;
int main()
{
    //使用类名直接访问静态成员变量
    MyClass::staticVar = 20;
    cout<<"staticVar:"<<MyClass::staticVar<<endl;
    //使用类的实例访问静态成员变量
    MyClass s1;
    s1.staticVar = 10;
    cout<<"staticVar:"<<s1.staticVar<<endl;
    
    return 0;
}

运行结果:

cpp 复制代码
staticVar:20
staticVar:10

二、访问权限

静态成员变量和一般的成员变量的访问权限是一样的。

在私有权限里的静态变量也是不能直接访问的。

相关推荐
LDG_AGI4 分钟前
【深度学习】多目标融合算法(六):渐进式分层提取模型PLE(Progressive Layered Extraction)
人工智能·深度学习·神经网络·算法·机器学习·推荐算法
superior tigre20 分钟前
C++学习:六个月从基础到就业——多线程编程:std::thread基础
c++·学习
奔跑的废柴29 分钟前
LeetCode 925. 长按键入 java题解
java·算法·leetcode·双指针
姬公子52129 分钟前
leetcode hot100刷题日记——7.最大子数组和
c++·算法·leetcode
闻缺陷则喜何志丹34 分钟前
【回溯 剪支 状态压缩】# P10419 [蓝桥杯 2023 国 A] 01 游戏|普及+
c++·算法·蓝桥杯·剪枝·回溯·洛谷·状态压缩
爱喝水的鱼丶38 分钟前
SAP-ABAP:ABAP异常处理与SAP现代技术融合—— 面向云原生、微服务与低代码场景的创新实践
开发语言·低代码·微服务·云原生·sap·abap
Wneosy1 小时前
第十六届C++B组easyQuestions
c++·算法·蓝桥杯
赵和范1 小时前
C++:与7无关的数
开发语言·c++·算法
长勺1 小时前
Java线程池调优与实践经验
java·开发语言
灬0灬灬0灬1 小时前
掩膜合并代码
开发语言·python