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

二、访问权限

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

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

相关推荐
地平线开发者6 分钟前
不同传感器前中后融合方案简介
算法·自动驾驶
Mr_WangAndy13 分钟前
C++_chapter15_C++重要知识点_lambda,initializer_list
c++·lambda·初始化列表
张np15 分钟前
java基础-集合接口(Collection)
java·开发语言
地平线开发者17 分钟前
征程 6X 常见 kernel panic 问题
算法·自动驾驶
Maple_land18 分钟前
第1篇:Linux工具复盘上篇:yum与vim
linux·运维·服务器·c++·centos
开始了码23 分钟前
QT:ItemWidgets模块介绍
开发语言·qt
汪汪队立大功12325 分钟前
JavaScript是怎么和html元素关联起来的?
开发语言·javascript·html
Mr_Dwj1 小时前
【Python】Python 基本概念
开发语言·人工智能·python·大模型·编程语言
hggngx548h1 小时前
有哪些C++20特性可以在Dev-C++中使用?
开发语言·c++·c++20