95.静态成员与普通成员的区别是什么?

95.静态成员与普通成员的区别是什么?

1.归属不同

  • 普通成员:属于每个对象,每个对象一份
  • 静态成员:属于整个类,所有对象共享一份

2.内存存储不同

  • 普通成员:在栈 / 堆对象空间
  • 静态成员:在全局数据区(不在对象里)

3.访问方式不同

  • 普通成员:必须通过对象 ->对象. 访问
  • 静态成员:可用类名:: 直接访问,也可用对象访问

4.生命周期不同

  • 普通成员:随对象创建 / 销毁而存在 / 消失
  • 静态成员:程序启动就存在,程序结束才释放

5.访问权限不同

  • 普通成员函数:有 this 指针,可访问任意成员
  • 静态成员函数:无 this 指针,只能直接访问静态成员,不能访问普通成员

6.继承表现不同

  • 普通成员:子类会继承并拥有各自副本
  • 静态成员:子类与基类**共享同一个静态成员
posted @ 2023-07-11 15:34  CodeMagicianT  阅读(128)  评论(0)    收藏  举报