C++中static的几种含义:static局部变量,static全局变量,类中的 static数据成员,类中的static成员函数

说说static的几种含义:static局部变量,static全局变量,类中的 static数据成员,类中的static成员函数

    static局部变量。在局部变量声明前加static表示这是一个“形似局部变量的静态变量”。看起来和用起来像是局部变量,但实际上他的性质跟其他的静态变量是一样的,也就是说在内存中只有一个副本,不会像局部变量那样函数调用完毕就释放。与其他静态变量不同的是他的可见性只保持在声明它的函数体内,但可以设置访问函数提供给外部使用。

    static全局变量。这种用法继承自C语言,表示这个全局变量的可见性限制在声明它的源文件内(c或者cpp文件),因此不同的源文件可以使用static声明同名的全局变量而不会冲突。虽然同名,实际上在内存中是不同的全局变量。

    static数据成员。表示这个成员只是逻辑上与声明它的类相关,但实际上它不属于任何一个类对象。在内存中以单例形式存在,不会随着类对象的创建和销毁而存亡。

    static成员函数。实际上相当于C语言的全局函数,它没有this指针,仅在逻辑上与类相关联,在调用上线文中与任何类对象都没有关联,可以当成全局函数来使用。

温馨提示:答案为网友推荐,仅供参考
相似回答