整理static一些特性,生命周期,内存申请时刻
2017-08-15 10:38
337 查看
1. static 修饰范围
a) static 可以用于修饰变量
全局变量,局部变量,成员变量
b) static可以用于修饰函数
可以修饰成员函数,但是不能修饰普通函数。并且函数内部只能调用类的静态成员。
2. static 变量生命周期
a) static 局部变量生命周期
当函数第一次调用时,会调用这个变量的构造函数,生命周期开始,直到程序执行结束。包括成员函数中的临时变量。
b) static全局变量
在main函数执行前,会进行初始化,即会调用该对象的构造函数。生命周期,整个程序的生命周期。
需要注意的是,普通全局变量可以extern 出去,在其他cpp文件中使用,但是如果加上static修饰符,就只能在当前cpp中使用,其他文件不能应用这个静态全局变量。
c) static 成员变量
在类中声明,但是只要有调用改成员的地方,那么这个变量就需要在类外进行定义。
在定义的时候,会调用变量的构造函数。生命周期也是程序的生命周期。在main函数执行之前就已经调用了构造函数。
a) static 可以用于修饰变量
全局变量,局部变量,成员变量
b) static可以用于修饰函数
可以修饰成员函数,但是不能修饰普通函数。并且函数内部只能调用类的静态成员。
2. static 变量生命周期
a) static 局部变量生命周期
当函数第一次调用时,会调用这个变量的构造函数,生命周期开始,直到程序执行结束。包括成员函数中的临时变量。
b) static全局变量
在main函数执行前,会进行初始化,即会调用该对象的构造函数。生命周期,整个程序的生命周期。
需要注意的是,普通全局变量可以extern 出去,在其他cpp文件中使用,但是如果加上static修饰符,就只能在当前cpp中使用,其他文件不能应用这个静态全局变量。
c) static 成员变量
在类中声明,但是只要有调用改成员的地方,那么这个变量就需要在类外进行定义。
在定义的时候,会调用变量的构造函数。生命周期也是程序的生命周期。在main函数执行之前就已经调用了构造函数。
相关文章推荐
- 关于指针和数组对申请内存malloc和作为参数传递的一些问题
- 关于库函数里申请的内存空间在库函数外释放的问题的一些总结
- 关于java内存说明的一些帖子整理(待研究)
- sk_buff整理笔记(三、内存申请和释放)
- 关于内存对齐问题的一些资料整理
- jQuery的一些特性和用法整理小结
- C语言------关于系统内存分配机制的一些整理
- java新特性的一些整理
- 关于iOS内存 指针一些整理
- 一些语言特性整理——预处理指令、volatile、标准预定义宏
- 整理HTML5的一些新特性与Canvas的常用属性
- C++中static的一些特性
- jQuery的一些特性和用法整理小结
- 关于内存对齐的一些问题整理
- symbian的应用程序中,如何处理申请内存失败的异常的一些讨论
- android 内存溢出oom错误的一些小见解
- Java的一些特性小记
- 【C++再学习】【02】C部分一些整理
- PostGIS特性整理
- 部分IT术语的英语简写与简写方法(整理一下最近遇到的一些IT术语)