static

::首页 >> 文档中心 >> 在线杂志 >> C++、MFC [ 在线杂志 第50期 ]   [ 原创文档 本文适合初级读者 已阅读37326次 ] 文档 代码 工具 C++的static关键字 作者:韩耀旭   C++的static有两种用法:面向过程程序设计中的static和面向对象程序设计中的static。前者应用于普通变量和函数,不涉及类;后者主要说明static在类中的作用。 一、面向过程设计中的static 1、静态全局变量 在全局变量前,加上关键字static,该变量就被定义成为一个静态全局变量。我们先举一个静态全局变量的例子,如下: //Example 1 #include void fn(); static int n; //定义静态全局变量 void main() { n=20; cout< < void fn(); static int n; //定义静态全局变量 void main() { n=20; cout< < extern int n; void fn() { n++; cout< < void fn(); void main() { fn(); fn(); fn(); } void fn() { static n=10; cout< < static void fn();//声明静态函数 void main() { fn(); } void fn()//定义静态函数 { int n=10; cout< < class Myclass { public: Myclass(int a,int b,int c); void GetSum(); private: int a,b,c; static int Sum;//声明静态数据成员 }; int Myclass::Sum=0;//定义并初始化静态数据成员 Myclass::Myclass(int a,int b,int c) { this->a=a; this->b=b; this->c=c; Sum+=a+b+c; } void Myclass::GetSum() { cout<<"Sum="< < fn()。但是与普通函数相比,静态成员函数由于不是与任何的对象相联系,因此它不具有this指针。从这个意义上讲,它无法访问属于类对象的非静态数据成员,也无法访问非静态成员函数,它只能调用其余的静态成员函数。下面举个静态成员函数的例子。 //Example 6 #include class Myclass { public: Myclass(int a,int b,int c); static void GetSum();/声明静态成员函数 private: int a,b,c; static int Sum;//声明静态数据成员 }; int Myclass::Sum=0;//定义并初始化静态数据成员 Myclass::Myclass(int a,int b,int c) { this->a=a; this->b=b; this->c=c; Sum+=a+b+c; //非静态成员函数可以访问静态数据成员 } void Myclass::GetSum() //静态成员函数的实现 { // cout< < #include "static.h" //将头文件加进去 extern int n; int main(void) { n=20; cout<<"n="< < using namespace std; static int n; //定义静态全局变量 static void fn() { static int i=10; i = 888; n++; cout< < #include "static.h" using namespace std; extern int n; static void fn(); void f() { static int t = 909; cout<<"t = "< <
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值