【发布时间】:2012-02-25 10:04:40
【问题描述】:
下面的示例代码显示了我正在尝试做的事情:
template<int NX, int NY>
class Array
{
public:
float v[NX][NY];
};
void main()
{
Array<10,20> grid;
}
上面的代码不会编译,但它显示了我想要做什么。我们有一个包含数组的类,而数组类直到编译时才知道它的大小。有没有简单的方法来做到这一点?
编辑:我想写一个简单的可重用数组类。这意味着我需要找到一种将数组大小与类分开的好方法。
我还希望该类快速(且简单),因此不能动态分配。这意味着在运行时无法给出大小。
我也不想使用预处理器来定义大小,因为这意味着我将不得不经历在某处更改数字的麻烦。这还不够方便。
基本上,类直到编译时才知道自己的大小,因为那是主函数告诉类它的大小的时候。
编辑:上面的代码很好。
【问题讨论】:
-
无法编译的唯一原因是
main必须返回int——除此之外,它是合法代码。 codepad.org/xKxBH2tJ -
另外,“直到编译时”没有什么意义——还有什么更早的时间?
标签: c++ arrays templates multidimensional-array