static自我理解

static使得数据成员或者函数生命周期为整个文件所在程序的生命周期, 在C中还可以用它避免被其它文件使用为外部成员

static类

明确:类的静态数据成员它被所有类对象共享,但它是属于类的,而不是类的对象的

定义静态成员:static只出现在类内部的声明语句中

静态成员函数在类的内部与外部均可以定义(只需要在函数声明前加上static)

class a1{
....
static void func1();
};
void a1::func1(){...}


因为静态数据成员不属于类的任何一个对象,这意味着它们不是有类的构造函数初始化的,必须在类的外部

定义与初始化每个静态数据成员且只能定义一次,此时可以无视它是否是private或者public,但定义完成后将不行

并且最好与其它非内联函数的定义放在一个文件下

类内初始化方法:

我们可以为静态成员提供const 整数类型 类内初始值,不过要求静态成员必须是字面值类型的constexpr

eg: static constexpr int period = 30;

静态成员能用于某些场景:

静态数据成员可以是不完全类型:

eg:

class Bar{
public:...
private:
static Bar mem1; //OK
Bar *mem2; //OK
Bar mem3; //ERROR
};

我们可以使用静态成员作为默认实参

eg:

class Screen{
public:
Screen & clear(char = bkground)
private:
static const char bkground;
};

最新文章

  1. noip2016十连测round2
  2. React 快速入门小记
  3. DICOM图像像素值(灰度值)转换为CT值
  4. jquery each遍历节点使用
  5. 你会swap吗,按值传递还是按引用?
  6. pure.css
  7. 手把手教你写LKM rookit! 之 第一个lkm程序及模块隐藏(一)
  8. IOS 学习笔记 2015-03-24 OC-API-网络访问-案例一
  9. Python的面向对象1
  10. Php会员权限
  11. SpringMVC+highstock实现曲线报表
  12. 时间复杂度为O(nlogn)的LIS算法
  13. 007---Hibernate基本映射标签和属性介绍
  14. iframe父页面获取子页面的参数
  15. [HNOI 2011]卡农
  16. Jmeter如何把响应数据的结果保存到本地的一个文件
  17. FFmpeg: AVPacket 结构体分析
  18. android--------自定义控件 之 方法篇
  19. ibatis sqlmap配置问题 “Check the IBatisNet.DataAccess.DaoSessionHandlers.SqlMapDaoSessionHandler.”
  20. Android LCD(二):LCD常用接口原理篇(转)

热门文章

  1. Django项目:CRM(客户关系管理系统)--79--69PerfectCRM实现CRM业务流程(bpm)学生讲师分页
  2. 线性基(模板) LUOGU 3812
  3. 历届试题_DNA比对
  4. git 远程服务器创建项目自动化部署、克隆推送免密码
  5. 有趣的纯CSS实现动态晴阴雨雪
  6. union 和order by 使用时排序不正确
  7. 20190813「Night」-Blind
  8. A Simple Problem with Integers POJ - 3468 (线段树)
  9. solr问题missing content stream
  10. PyCharm常用技巧集合