==> 在 wankun.bbs@bbs.csie.nctu.edu.tw (..) 的文章中提到:
> ※ 引述《rtyu.bbs@bbs.csie.ncu.edu.tw (rtyu)》之銘言:
> > 看看還是蠻奇怪的...
> > static void function() { ..}
> > ^^^^^^^^^^^^
> > 這樣不是會變成多型 而且是static的傳回值?
> > 高手都喜歡用很難的方式來coding.. 呵..
> 其實不會奇怪啊!...
> 你只要將static當成是一個關鍵字獨立出來。
> void functio() 你應該會看的很習慣吧!
> 並不一定函式簽名"最前面"都是return型別..
> 而且static函式在有些地方是非用不可喔...(不是高手才用)
> e.g. C#裏的main就是static..
static在C裡, 有2種意思
1. 該變數在離開此function後, 不會消失
==> static local variable
2. 該變數 or function, 只在這檔案中可以被使用
==> static global variable,function
在C++裡, 有另外2種意思
3. 該變數在class裡是唯一的, 所有object會共用, 且在object產生前就存在,
可以在產生object初始化
==> class內的static member variable
4. 該class function可以在沒產生object就使用, 但只能對class內
的static local variable做動作
==> class內的static member function
EX:
class test
{
static int aaa; //3
public:
static void abc(void) //4
{
aaa=100;
}
};
int test::aaa=20; //initialize
//====================
static void hello(void) //2
{
static int count=0; //1
cout<<"count = "<<count++<<endl;
}
static int forver=2; //2
main()
{
hello();
test::abc(); //沒object就呼叫
hello();
}
--
* Post by mingchieh from 61-228-61-247.dynamic.hinet.net
* Origin: ★ 交通大學資訊科學系 BBS ★ <bbs.cis.nctu.edu.tw: 140.113.23.3>