作者godman362 (青)
看板NUU_CSIE
标题[心得] staic用法
时间Mon Oct 12 07:18:17 2009
资柿园挂了,好多笔记心得都没地方放
只好借放这边了,阿东你应该没意见吧
-----------------------------------
static 有三种类型的用法
一种是用在
函数里面的
静态变数
一种是用在
不同档案之间
静态变数
一种是用在
class或struct中的
静态成员
以下,一一讲解每种不同的使用方法:
使用在函数中
void Func()
{
static int count = 0;
cout <<count++ <<endl;
return;
}
这是最常见的用法
一般区域变数,会在函数结束之後,便随着消失
也就是说,每次
呼叫Func这个函数(在没有static的情况下)
每次秀出画面的值都会是0
加上了static,表示他是静态变数,会在程式一开始就独立分配一块记忆体
并不会被归类於函数里面的区域变数,因此不会随着函数结束而消失
使用在不同档案
当写到稍微大一点的程式,就是
专案
就会写到很多个档案,彼此之间有互相利用的关系存在
但是,有些变数并不想被外界使用的话,就必须使用到static
static在这边的意义,代表不被外界档案所引用
一般情况下,我们要引用其他档案的变数,必须使用
extern
但是一旦加了static之後,
extern也会变得无法使用
因此达到了不给外界使用的效果
class或struct之静态成员
静态成员的意义,很类似於第一种用法,不过仍然具有差异
相同的地方,在於他们都是额外的分配一块记忆体区间
class或struct宣告出一个物件时,会分配一块记忆体出来
而这块记忆体包涵了物件中所有被宣告的变数
但是有个变数被宣告成static的话,就代表那个变数并不会随着物件一起产生
而是独立出来
也就是说,所有物件都不会包涵那个static宣告的变数
而是由class或struct有拥有,变成所有物件去共用一个变数而已
并非每一个物件独立拥有该变数记忆体区间
以上,下次有机会再见。
(资柿园的怨念.....)
--
ˍˍ
极目冷眼笑苍云 ▕寂寞▏
寂寞一生傲天穹 ▕侯印▏
 ̄ ̄
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 122.118.4.13
1F:推 osanaosana:好文...私心建议以电玩的角度多举例 10/17 02:03
2F:→ osanaosana:像是第三个例子就很像卡丁车团队竞速的蓝气 10/17 02:05
3F:→ godman362:楼上好爱玩卡阴车喔...(戳戳) 10/17 21:56
4F:→ osanaosana:...很久没玩了,没动力了... 10/18 01:13