下面的代碼示例顯示了什麼,我試圖做的:用靜態2d數組定義一個類的方便方法是什麼(並且2d數組的大小僅在編譯期間是已知的)?
template<int NX, int NY>
class Array
{
public:
float v[NX][NY];
};
void main()
{
Array<10,20> grid;
}
上面的代碼將無法編譯,但它顯示了我想做的事情。我們有一個包含數組的類,並且數組類在編譯時才知道它的大小。有沒有簡單的方法來做到這一點?
編輯:我想寫一個簡單的可重用的數組類。這意味着我需要找到一種將數組大小與類分開的好方法。
我也希望類是快速(和簡單),所以它不能動態分配。這意味着在運行時無法給出尺寸。
我也不想使用預處理器來定義大小,因爲這意味着我將不得不經歷更改某處的數字的麻煩。這不夠方便。
基本上,這個類直到編譯時才知道它自己的大小,因爲那是當main函數告訴類的大小。
編輯:上面的代碼是好的。
不會編譯的唯一原因是'main'必須返回'int' - 除此之外,它是合法的代碼。 http://codepad.org/xKxBH2tJ – 2012-02-02 18:22:59
另外,「直到編譯時」沒什麼意義 - 什麼時候有更早的時間? – 2012-02-02 18:23:40