[問題] 介於static和private的宣告?
class objA{
public:
void func(){
static bool firstcall=0;
…
}
}
寫程式時,
旗標宣告成 static 很方便,
但是當他是放在類別函式裡面就怪怪的!
當我宣告兩個以上的類別
objA a1,a2;
a1.func()
a2.func()
"static"會互相影響到
為了解決這問題只好把 firstcall
宣告成私有成員。
可是這樣對往後維護也不好…
請問有可以宣告在函式內,
卻又互相獨立的方法嗎
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 39.14.8.80
※ 文章網址: https://www.ptt.cc/bbs/C_and_CPP/M.1451316579.A.7FF.html
→
12/29 01:03, , 1F
12/29 01:03, 1F
→
12/29 10:42, , 2F
12/29 10:42, 2F
推
12/29 12:20, , 3F
12/29 12:20, 3F
→
12/29 22:55, , 4F
12/29 22:55, 4F
→
12/29 23:05, , 5F
12/29 23:05, 5F
→
12/29 23:05, , 6F
12/29 23:05, 6F
→
12/29 23:05, , 7F
12/29 23:05, 7F
→
12/29 23:07, , 8F
12/29 23:07, 8F
推
12/29 23:17, , 9F
12/29 23:17, 9F
推
12/29 23:19, , 10F
12/29 23:19, 10F
→
12/29 23:20, , 11F
12/29 23:20, 11F
→
12/29 23:20, , 12F
12/29 23:20, 12F
→
12/29 23:21, , 13F
12/29 23:21, 13F
→
12/29 23:22, , 14F
12/29 23:22, 14F
→
12/29& 23:23, , 15F
12/29& 23:23, 15F
→
12/29 23:26, , 16F
12/29 23:26, 16F
→
12/29 23:26, , 17F
12/29 23:26, 17F
以上面舉例是這樣沒錯,
又其他範例:
class objB{
//變換矩陣
double transform[16];
//上一次的矩陣值
double preTranform[16];
//原始座標
double vertex[3n];
//新座標
double newVertex[3n];
//
void multi(double *matrx)
{
將變換矩陣乘上 matrx
}
double* GetNewVertex()
{
如果變換矩陣值沒變
(等於preTransform),
回傳newVertex;
否則重算並回傳newVertex
}
}
像上面這種情況,
preTransform 和 newVertex
也是只在一個func中使用,
而且原本成員就有類似的名稱
transform 和 vertex
※ 編輯: noodleT (27.242.128.158), 12/29/2015 23:57:41
→
12/30 00:05, , 18F
12/30 00:05, 18F
→
12/30 00:05, , 19F
12/30 00:05, 19F
→
12/30 00:05, , 20F
12/30 00:05, 20F
→
12/30 00:11, , 21F
12/30 00:11, 21F
討論串 (同標題文章)
以下文章回應了本文:
完整討論串 (本文為第 1 之 2 篇):
C_and_CPP 近期熱門文章
PTT數位生活區 即時熱門文章