7.6 类的静态成员

7.6 类的静态成员

静态成员的特性

  • 静态成员属于类,而不是对象。
  • 类型可以是类对象、指针、引用、常量等。
  • 静态成员函数不能声明为const类型。

使用静态成员

  • 类外使用作用域符::访问。
  • 当然也可以通过类对象访问,例如a.static()。
  • 成员函数访问时无需通过作用域符。

定义静态成员

  • 类外定义时不能再使用static关键字。
  • 一般在类的外部和初始化静态成员。
  • 静态成员只能定义一次,存在于程序的整个生命周期内。
  • 即使在类内初始化了静态成员,在类外最好也定义一次,当然不能再初始化它了。
  • 如果在类内初始化静态成员,静态成员必须是字面值常量的constexpr,为其提供const整数类型的初始化值,例如:
class A
{
 public:

  static    constexpr int val = 30;
  int array[val];
}

静态成员和普通成员的一些区别

  • 静态成员可以作为函数的默认实参,例如
class A
{
public:

  void setAge(int age = default);

  static const int default;
}
  • 静态成员可以像指针一样是不完整类型,例如
class A
{
public:

  void setAge(int age = default);

  static A instance;  //正确
  
  A* m_pA;   //正确

  A  m_a;  //错误
}
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 136,107评论 19 139
  • C++文件 例:从文件income. in中读入收入直到文件结束,并将收入和税金输出到文件tax. out。 检查...
    SeanC52111阅读 8,065评论 0 3
  • 一、基本数据类型 注释 单行注释:// 区域注释:/* */ 文档注释:/** */ 数值 对于byte类型而言...
    龙猫小爷阅读 9,774评论 0 16
  • 1. Java基础部分 基础部分的顺序:基本语法,类相关的语法,内部类的语法,继承相关的语法,异常的语法,线程的语...
    子非鱼_t_阅读 33,320评论 18 399
  • 本周刷爆朋友圈的是 小李子终于凭借《荒野猎人》的勇敢牺牲 获得了奥斯卡奖, 不管是不是小李子的粉丝都松了一口气 他...
    阿翼阅读 2,571评论 1 0

友情链接更多精彩内容