C++:类与对象——静态成员变量及静态成员函数

静态成员

1. 基础知识

静态成员就是在成员变量和成员函数前加上关键字static,称为静态成员

静态成员分为:

  • 静态成员变量
    • 所有对象共享同一份数据
    • 编译阶段分配内存
    • 类内声明,类外初始化
  • 静态成员函数
    • 所有对象共享同一个函数
    • 静态成员函数只能访问静态成员变量

2. 静态成员变量

声明及初始化

cpp 复制代码
class Person{
    static int m_A;
};
int Person::m_A = 100;

两种访问方式

  1. 通过对象进行访问:p.m_A;
  2. 通过类名进行访问:Person::m_A

注意事项

  • 静态成员变量也有访问权限

3. 静态成员函数

声明及初始化

cpp 复制代码
class Person{
    static void func(){
        cout<<"static void func调用"<<endl;
    }
};						

两种访问方式

  1. 通过对象访问:p.func()
  2. 通过类名访问:Person::func()

注意事项

  • 静态成员函数只能访问静态成员变量
  • 静态成员函数也有访问权限
相关推荐
若亦_Royi34 分钟前
C++ 的大括号的用法合集
开发语言·c++
ragnwang4 小时前
C++ Eigen常见的高级用法 [学习笔记]
c++·笔记·学习
lqqjuly7 小时前
特殊的“Undefined Reference xxx“编译错误
c语言·c++
冰红茶兑滴水8 小时前
云备份项目--工具类编写
linux·c++
刘好念8 小时前
[OpenGL]使用 Compute Shader 实现矩阵点乘
c++·计算机图形学·opengl·glsl
酒鬼猿8 小时前
C++进阶(二)--面向对象--继承
java·开发语言·c++
姚先生978 小时前
LeetCode 209. 长度最小的子数组 (C++实现)
c++·算法·leetcode
小王爱吃月亮糖9 小时前
QT开发【常用控件1】-Layouts & Spacers
开发语言·前端·c++·qt·visual studio
aworkholic9 小时前
opencv sdk for java中提示无stiching模块接口的问题
java·c++·opencv·jni·opencv4android·stiching
程序员老冯头10 小时前
第十六章 C++ 字符串
开发语言·c++