→ longlongint: member variable 12/29 01:03
→ Caesar08: 這應該問你,你當初為甚麼要宣告成static吧 12/29 10:42
推 CaptainH: 為什麼private對維護不好? 12/29 12:20
→ Caesar08: 為甚麼一定要宣告在函式內呢? 12/29 22:55
→ noodleT: 因為那個變數從頭至尾只在該func使用,如果宣告在class成 12/29 23:05
→ noodleT: 員中,那麼:1、必須在建構子初始化。2、原本可以寫成 co 12/29 23:05
→ noodleT: nst function 的函式,也要改成 nonconst 12/29 23:05
→ noodleT: 而且,寫一般函式時,我們也不會把旗標寫成全域變數吧 12/29 23:07
推 LPH66: C++ 有個關鍵字叫 mutable 可以解決你的問題 2 12/29 23:17
推 Caesar08: 推樓上,直覺想到這個,但這應該不是他要的 12/29 23:19
→ Caesar08: 我看你的敘述,感覺不用static就可以達到這些 12/29 23:20
→ Caesar08: 但你用static,應該是第一次呼叫func的object才有這資料 12/29 23:20
→ noodleT: 我會查看看的,謝謝 12/29 23:21
→ Caesar08: 在data member加一個pointer呢?12/29 23:22
→ noodleT: 不懂「第一次呼叫func才有資料」12/29& 23:23
→ Caesar08: 變數名不是叫firstcall嗎?12/29 23:26
→ Caesar08: 應該會對第一次呼叫func的object給予某些資料吧12/29 23:26
以上面舉例是這樣沒錯,
又其他範例:
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
→ noodleT: 其他開發者,萬一在class中直接使用newvertex,而不是透 12/30 00:05
→ noodleT: 過getnewvertex(),那他所計算的值就不保証是最新的座標 12/30 00:05
→ noodleT: 位置了!但偏偏變數名稱有「new」 12/30 00:05
→ noodleT: 也許是我自己太多慮,自找麻煩== 12/30 00:11