[問題] 唯讀變數的疑惑

作者: wwwearn (小勇)   2014-07-29 23:14:15
最近在練習的時候想到一個問題
題目是得樣的我有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就有比較省嗎
作者: wwwearn (小勇)   2014-07-29 23:15:00
程式碼是宣告3*2的部分跟題目不同請無視...
作者: soheadsome (師大狗鼻哥)   2014-07-29 23:17:00
基本上都一樣 會在程式開始後都會先分配記憶體
作者: VVll (李奧納多皮卡丘)   2014-07-29 23:56:00
類別內的static變數成員會共用記憶體
作者: xpride (陳ㄚ智)   2014-07-30 00:12:00
你這問題,從頭到尾也只需要一份array完全沒有省不省的問題存在阿??
作者: Jockey66666 (往事已成追憶)   2014-07-30 13:26:00
你的座標都是一樣的且不能更改就用static const不太懂每個class都這樣搞的用意,如果不同class需要參考到一樣的座標,那你應該不要把這個座標放在那些需要用到的class裡面

Links booklink

Contact Us: admin [ a t ] ucptt.com