博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
static的用法
阅读量:4979 次
发布时间:2019-06-12

本文共 708 字,大约阅读时间需要 2 分钟。

面向对象的static

静态数据成员:在类内数据成员的声明前加static,即声明类内静态数据成员。
  1. 非静态成员每个对象都有自己的拷贝。而静态数据成员在程序中只有一份拷贝,由该类的所有对象共享。但其不属于特定的类,在没有任何类实例时就可以操纵它。
  2. 存储在全局数据区。由于定义时要分配空间,所以不能在类声明中初始化。在类外初始化,初始化时不需要再加static关键字。格式为: :: =
  3. 虽然同样遵循public、protected、private的访问权限,但不能在类外被访问。访问静态成员有两种格式:.;如果静态成员为public,可以::
  4. 静态数据成员主要用在各个对象都有相同的某项属性时。一是可以节省存储空间,二是在需要修改时,只需要修改一处即可。比如存款类中的利息。
  5. 同全局变量相比,静态数据成员有两个好处。一是没有进入程序的全局命名空间,不会和其他全局变量造成冲突;二是可以实现信息隐藏,可以定义为private,而全局变量不能。
静态成员函数

与静态数据成员类似,静态成员函数不是为类中某个具体的对象服务,是为类的全部服务。

  1. 普通成员函数内部缺省的隐藏了指向对象本身的this指针,而静态成员函数没有this指针。因此它不能访问类对象的非静态数据成员和非静态成员函数,只能调用静态成员函数。
  2. 静态成员之间可以互相访问,包括静态数据成员和静态成员函数。
  3. 由于没有this指针的额外开销,其速度与类的全局函数相比有少许提升。
  4. 类的对象可以用.或->直接调用静态成员函数,也可以在没有类对象时访问:::()

转载于:https://www.cnblogs.com/sdwvskyo/p/3994541.html

你可能感兴趣的文章
PHP导出数据到CSV文件
查看>>
POJ - 3693 Maximum repetition substring (后缀数组)
查看>>
Ghost Win10系统X64位和32位10041装机版下载
查看>>
App跳转至系统Settings
查看>>
RabbitMQ
查看>>
参数传递 引用传递 值传递 ref传递
查看>>
spring ehcache使用笔记
查看>>
【知识总结】多项式全家桶(三点五)(拆系数解决任意模数多项式卷积)
查看>>
HTML5中input文本框输入,h1标签实时输出代码
查看>>
MySQL数据类型
查看>>
WPF 带水印的密码输入框
查看>>
ASP.NET Core 2.2 基础知识(十一) ASP.NET Core 模块
查看>>
ASP.NET Core 运行原理解剖[4]:进入HttpContext的世界
查看>>
sql-----STR 函数
查看>>
WPF中类似使用tab键功能,可以向上向下定位
查看>>
设置WPF输入框焦点
查看>>
SQLServer数据库差异备份
查看>>
SQL SERVER GO命令循环使用实例
查看>>
C# 调用导致堆栈不对称。原因可能是托管的 PInvoke 签名与非托管的目标签名不匹配...
查看>>
你可能不知道的字符比较中的“秘密”
查看>>