作者wwwearn (小勇)
看板C_and_CPP
標題[問題] 唯讀變數的疑惑
時間Tue Jul 29 23:14:15 2014
最近在練習的時候想到一個問題
題目是得樣的我有5個固定的座標
而這些座標並非任何線性座標也無任何規律
而這些座標只有在某個class中的function用到
那要這麼宣告才是最省記憶體或是最好的方法呢?
1.
const int p[3][2]={......}; //方法1
class MyClass
{
private:
static const int p[3][2]; //方法2
public:
void MyFun()
{
static const int p[3][2]={.......}; //方法3
const int p[3][2]={.......}; //方法4
}
}
const int MyClass::p[3][2]={......}; //方法2定義
int main()
{
return 0;
}
應該用哪種方法比較正確呢?如果只是純粹拿來讀的話
在想如果用static的話每個Class都這樣搞記憶裡不是很浪費嗎?
但是如果用const int就有比較省嗎
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 121.254.69.174
※ 文章網址: http://www.ptt.cc/bbs/C_and_CPP/M.1406646858.A.D61.html
→ wwwearn:程式碼是宣告3*2的部分跟題目不同請無視... 07/29 23:15
推 soheadsome:基本上都一樣 會在程式開始後都會先分配記憶體 07/29 23:17
→ VVll:類別內的static變數成員會共用記憶體 07/29 23:56
→ xpride:你這問題,從頭到尾也只需要一份array 07/30 00:12
→ xpride:完全沒有省不省的問題存在阿?? 07/30 00:13
→ Jockey66666:你的座標都是一樣的且不能更改就用static const 07/30 13:26
→ Jockey66666:不太懂每個class都這樣搞的用意,如果不同class需要 07/30 13:27
→ Jockey66666:參考到一樣的座標,那你應該不要把這個座標放在那些 07/30 13:28
→ Jockey66666:需要用到的class裡面 07/30 13:28