static

static:程序结束才会被析构

  • locial static 对象:函数内的static对象
    • 它的生存周期相当于是全局变量
    • 只在函数内可见
  • non-locial static 对象:
    • 当non-locial static 对象A需要另一编译单元的on-locial static 对象B进行初始化,此时B必须先于A进行初始化。
      reference-returning函数:新建一个函数并在其内定义并初始化locial static 对象,返回指向其的引用。该函数用locial static 对象代替了non-locial static 对象。因为locial static 对象保证在函数被调用期间被初始化,所以当A用B的函数进行初始化时B已经初始化完毕。EP32
    • 用在全局变量,表明这个变量在每个编译单元有独自的实例:
      foo.cpp和bar.cpp中的a不一样
// foo.h
static int a = 123;
// foo.cpp
#include "foo.h"
int foo_func() { return a++; }
// bar.cpp
#include "foo.h"
int bar_func() { return a++; }
  • 类的静态成员独立于类的对象
    • static只能出现在类的内部
    • 静态成员的类型可以是不完全类型
    • 静态成员可以作为默认实参
    • 类的成员函数可以直接访问
    • 类的对象/指针/引用可以通过静态成员函数使用类的静态成员
    • 由于静态成员独立于类的对象,静态成员函数无法使用this指针,且不能声明为const函数
    • 最好在类的外部定义静态成员。并且将它和其他成员函数的定义放在一起。
double A::f=0.1;
阅读更多
版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/qq_34488711/article/details/75082060
文章标签: static
个人分类: C Part of C++
上一篇const
下一篇转型
想对作者说点什么? 我来说一句

小小计算器(java写的计算器)

2010年07月15日 4KB 下载

GTMBase64系统

2015年06月03日 23KB 下载

funcode黄金矿工代码

2018年05月31日 8KB 下载

88个Android应用程序.zip

2014年12月07日 22.22MB 下载

android开发程序

2014年06月10日 11.13MB 下载

Java使用static

2009年03月28日 6KB 下载

c中static的作用

2009年09月14日 31KB 下载

学员信息管理系统

2014年08月10日 21KB 下载

没有更多推荐了,返回首页

关闭
关闭