标签:
本文主要记录的C++中static的一些内容,内容简单,仅仅作为梳理一下知识,如有错误请留言指出。
static的作用
总的来说,static控制了变量和函数的使用范围(本地数据化和代码范围的控制)
static全局变量和普通全局变量的区别
全局变量和静态全局变量都是静态存储方式。区别在于:非静态全局变量的作用域是整个源程序,当一个源程序有多个源文件组成时,非静态的全局变量在各个源文件都有效,而静态全局变量则限制了作用域,只定义了该静态全局变量的源文件有效,同一源程序的其他源文件不能使用它,使用静态全局变量可以避免在其他源文件中引起错误。
综上:把局部变量改成静态变量改变了它的存储方式,及改变了它的生存期,把全局变量改为静态变量,改变了它的作用域,限制了它的使用范围。
C++类的静态数据和方法成员
类中的静态成员和方法不属于类的实例,而属于类本身并在所有类的实例间共享。调用这些时,应用类名::来引用。
#include <iostream> using namespace std; class Widget { public: Widget() { ++count; } ~Widget() { --count; } static int num()//静态成员函数 { return count; } private: static int count;//静态私有数据成员 }; int Widget::count = 0;// int main() { Widget x,y; cout<<"The num is:"<<Widget::num()<<endl; if(Widget::num()>1) { Widget x,y,z; cout<<"The num is:"<<Widget::num()<<endl; } Widget z; cout<<"The num is:"<<Widget::num()<<endl; cout << "Hello World!" << endl; return 0; }
标签:
原文地址:http://www.cnblogs.com/zi-xing/p/4590282.html