C++学习笔记——对static的重新认识
来源:互联网 发布:淘宝卖的人参是真的吗 编辑:程序博客网 时间:2024/05/29 03:56
static 这个修饰词的意思,是为 静态;在工作所用到的C工程中,时常看到其使用,但一直没有太深的认识,最近在看了C++语言描述后,其中对与class类的成员定义中,有个更详细的static修饰用法,使得我对static的认识比之之前更多了些。
在我的c文件中,我在一开始认为:对于全局变量才用static来修饰,以便对于其进行固定,不会随意变动;后来在对函数调用时,我也时不时的使用它来修饰,完全是照搬已有的函数定义写法来定义的,于是,经常在我在其他文件调用该函数时,编译总会有错误,说找不到相关函数,即便我已经在本文件开头进行extern声明,而有的时候则完全不行,完全不知道为什么。在后来,对于新定义的函数,都基本不用static进行修饰,只对变量进行修饰,这样一来,似乎错误少了很多,也就不了了之了。
最近在进行C++学习中,有一章节有介绍static,主要是用在class上。它说,定义了一个static变量,对于这整个类来说,是唯一的,不是没创建一次对象,就有一个static变量,举个例子来说:
class Z{public: void f(){ static int s=0;
int a=2; cout<<++s<<'\n'<<a<<'\n'; }};int main(){ Z z1,z2; z1.f(); // ——>1,2 z2.f(); // ——>2,2 z1.f(); // ——>3,2return 0;}
在这里,a是局部变量,对于每个Z类的对象,a有属于它自己的值;然而对于static修饰的s,则是大家公用,一次调用就一次增加。
同样的,这让我联想到我之前在C文件中对static的用法,有了一个更加清晰的认识,对于一个用static修饰的变量/函数来说,它只能在本文件中进行使用,若是在其他文件进行调用时,则应该把这个修饰去掉,免得限定了这个函数/变量的使用范围,一直对“静态的”难以理解,现在总算是有了一个方面的理解吧。
- C++学习笔记——对static的重新认识
- 对C学习的认识
- 对 FLASHBACK的重新认识
- 对COM的重新认识
- 对JavaScript的重新认识
- 对傅里叶变换的重新认识
- 对Hibernate的重新认识
- 认识C#——C#学习笔记
- 对static关键字的认识
- 初学者对static的认识
- 重新认识C的续行符
- 从头认识C—static和extern
- 对windows消息驱动的重新认识
- 我对REST的重新认识
- 对学生创业的重新认识
- 重新对JNI(JNA)的认识
- 对图片压缩的重新认识
- silverlight学习笔记——新手对silverlight的认识(1)
- 添加,删除任务计划
- C++ 运算符优先级列表
- 中文分词研究史
- oracle 常用命令
- Semaphore与Mutex的关系
- C++学习笔记——对static的重新认识
- js activexObject 调用 Exe文件
- MKMapView释放的时候崩溃
- SQL Server 2005安装过程
- Samba安装配置
- 模拟器编译通过,真机编译报错
- 关于系统提示Error loading MIDAS.DLL解决
- iphone ipad 开发中遇到的常见错误
- JAVA中的代码块