天津网站排名优化费用,岳池建设局网站,seo免费软件,西宁网络信息 网站建设1、static修饰局部变量----静态局部变量
特点#xff1a;
#xff08;1#xff09;第一次调用时创建#xff0c;然后第一次调用结束时没有被回收#xff0c;以后每次调用#xff0c;都延用上一次调用结束时的值#xff0c;直到程序结束时#xff0c;才被回收
静态局部变量
特点
1第一次调用时创建然后第一次调用结束时没有被回收以后每次调用都延用上一次调用结束时的值直到程序结束时才被回收
2由这个类创建的所有对象共享同一个静态局部变量 #include iostream using namespace std;class Test{ private: int num; public: Test(int num) :num(num){} void add(){ static int number90; //静态局部变量 number; coutnumbernumberendl; } };int main(){ Test t(0); t.add(); //91 t.add(); //92 t.add(); //93 //由这个类创建的所有对象共享同一个静态局部变量 Test t2(7); t2.add(); //94 return 0; } 2、static修饰成员变量----静态成员变量
特点
1必须类内声明类外初始化
2所有对象共享生命周期是程序运行时创建程序结束时销毁
3公共权限下除了可以使用对象访问静态成员变量也可以使用类名::静态成员变量名进行访问推荐使用类名访问 #include iostream using namespace std;class Test{ private: int num; //普通成员变量 public: //类内声明 static int num2; //静态成员变量 public: Test(int num) :num(num){}}; //类外初始化 int Test::num290; int main(){//静态成员变量的访问 //两种方式通过对象、通过类名推荐使用 Test t3(9); coutt3.num2endl; //对象访问 coutTest::num2endl; //类名访问 return 0; } 3、static修饰成员函数----静态成员函数方法
特点
1即可以通过类名调用也可以通过对象调用
2静态成员函数只可以访问静态成员变量因为其内部没有this指针所以不可以访问非静态成员变量
3静态成员函数声明和定义分离时static需添加在声明处类内 #include iostream using namespace std;class Test{ private: int num; //普通成员变量 public:static int num2; //静态成员变量 public: Test(int num) :num(num){}//静态成员函数 static void fn1(){ cout静态成员函数endl; //coutthisendl; //报错静态成员函数没有this指针所以不可以访问非静态成员变量 coutnum2endl; //只可以访问静态成员变量 }//类内声明 static void fn2(); };//类外定义 void Test::fn2(){ cout静态成员函数endl; } int main(){Test t2(7);//静态成员函数的调用通过对象、通过类名推荐使用 Test::fn1(); //类名调用 t2.fn1(); //对象调用 return 0; }