C++基础之Static(我要跳槽到全局)
来源:互联网 发布:php 超全局变量 编辑:程序博客网 时间:2024/06/10 08:01
今天在封装多线程的时候我频繁的用到了static,现在就来彻底解析一下
static 是个关键字,修饰变量~修饰函数,修饰后叫静态,存储的位置在全局数据区
static + 全局\局部\成员变量 = 静态全局\局部\成员变量
资料上说加全局静态变量和全局变量的区别在于前者只能在此……(有兴趣百度多的是)
对我有用的是我发现一:成员变量加了static我在其他的cpp中可以用了
情况一:我有一个成员变量封装在Text的cpp里,在main的cpp里赋值,但是操作都在封装的cpp里,而在封装的时候这个变量的数据不清楚大小
static解决:我在类里将变量写成static的,然后类里的函数对这个变量操作,在main的cpp里我将这个变量赋值
需要注意的:定义这个变量(或者说先找到这个变量,因为这个变量不是纯粹的全局变量,是静态成员变量,所以需要先找到这个变量,怎么找呢,类型+作用域这个变量,如果不赋值,默认为赋值0)
text.cpp main.cppclass int text::a ;{public: static int a;}总结:解决的我要跨cpp用变量的问题(静态成员变量)
情况二:我封装的卖票多线程程序将线程的回调函数写在类中,以成员函数的形式,问题是线程回调函数的调用方式是WINAPI,是标准调用,成员函数是this调用,线程回调函数前面我加static
总结:解决我不是一个地方的东西写在这里没有被踢出门外的问题(静态成员函数)
情况三:我函数中有一个变量,大家也都知道,除了函数,这个局部变量就没有了,我现在要求,多次调用这个函数,且这个函数中的这个局部变量的值可以累积
解决:将局部变量写成静态(静态局部变量)
总结:解决我消失的变量问题
static一般混同全局,但确实有区别,两个概念,作用域和生存周期
全局:生存周期:运行的时候就存在,一直存在--------------作用域:这个程序的所有文件都可以用
静态全局:生存周期:运行的时候就存在,一直存在—————作用域:这个程序中定义静态的文件中可用(很少很少用到)
- C++基础之Static(我要跳槽到全局)
- 我要跳槽!
- 我的2015之跳槽
- C语言中的 static变量(全局和局部)、static函数总结
- [C++][基础概念](二)static关键字
- C++基础重温之二:C和C++中的static
- java基础之static(静态)
- java基础之static关键字(1)
- java基础之static关键字(2)
- Java基础之(五)Static关键字
- Java基础之static
- Java基础之static
- IT研发老兵跳槽记之(三):离开你是我情非得已
- 加载基础数据到static
- C++(4)/new delete & static & this指针 & 全局函数和成员函数
- c语言之static
- objective-c 之 static
- C常见问题之static
- Android与JavaScrip进行交互(一)
- 香港苹果店外黄牛扎堆:买卖iPhone俨然
- 三极管基本放大电路解析
- C++ 使用::std::vector<>
- priority_queue 优先级队列的使用
- C++基础之Static(我要跳槽到全局)
- Base64 编码与解码
- 百度地图API之new BMap.Point
- C#学习笔记:并查集
- mongodb简单总结(一)
- php如何提高效率
- perl hash 根据键访问相应值
- “当前不会命中断点,还没有为该文档加载任何符号”解决办法
- servlet过滤器Filter入门(转,有自己的例子)