我想为一个项目做这样的事情......C++模板,静态分配的数组
template <class N> class MyClass { float properties[N]; };
反正在C++中做到这一点?
我想为一个项目做这样的事情......C++模板,静态分配的数组
template <class N> class MyClass { float properties[N]; };
反正在C++中做到这一点?
你需要什么叫值模板参数:
template <size_t N> class MyClass { float properties[N]; };
//^^^^^^ note this
现在你可以实例化这个类模板,传递任何非负积分值作为模板参数。例如,
MyClass<10> c1; //N=10
MyClass<100> c1; //N=100
您也可以通过常量表达式为:
const size_t size = 200;
MyClass<size> c2; //N=200
谢谢!多数民众赞成什么我需要的标题,但现在我不能让.cpp文件正确编译,当我尝试并把类中的任何功能MSVC告诉我“使用类模板需要模板参数列表”。任何想法为什么? – 2012-02-27 01:55:26
@DavidCarpenter:我怎么知道'.cpp'文件是什么?它包含什么? – Nawaz 2012-02-27 02:14:02
MyClass的成员函数的实现,就像构造函数一样,但是visual studio用这个错误突出显示它们 – 2012-02-27 02:15:22
我不明白你期待什么。由“一些随机类”索引的浮点数组? - 我会说不,你不能这样做(但他们我没有达到最新和最好的标准;-)。我会说你需要为此创建自己的数据结构,而不是依赖本地数组。 – John3136 2012-02-27 01:40:19
通常我会但是这是一点性能密集 – 2012-02-27 01:56:25