博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

C/CPP-成员变量与成员函数

Posted on 2023-03-13 09:31  乔55  阅读(15)  评论(0编辑  收藏  举报

静态成员变量概念

  • 属于整个类所有,不需要依赖任何对象,在类外全局数据区单独开辟空间
  • 在类内声明,在类外使用

访问静态成员变量的方式

  • 通过类名直接访问public属性的静态成员变量
  • 能过对象直接访问public属性的静态成员变量
  • 通过类的静态成员函数直接访问本类的成员变量,无论是否为public

静态成员变量的作用

  • 可以统计程序运行期间有多少个类的对象
  • 类的静态成员变量具有全局变量的作用,比类外全局变量更安全

静态成员变量的特点

  • 静态成员变量属于类不属于对象,它为所有对象所共有
  • 只能在类内声明静态成员变量,在类外初始化静态成员变量
  • 可以通过对象访问静态成员变量,也可以通过类名访问静态成员变量
  • 静态成员变量是命名空间属于类的全局变量。存储在`静态存储区

静态成员函数的特点

  • 静态成员函数只能访问静态成员变量,无法访问非静态成员变量。普通函数可以访问静态成员变量
  • 普通成员函数隐式包含一个指向当前对象的this指针
  • 静态成员函数属于类,在调用时,对象的this指针是不存在的
  • 若静态成员函数访问非静态成员变量时,由于没有this指针不知道该变量是属于哪个对象

静态成员的存储位置

  • 普通成员变量:存储在对象中,与struct有相同的内存而已和字节对齐
  • 静态成员变量:存储在静态存储区
  • 静态成员函数:存储在代码段中