C++ C++;模板化的、静态分配的数组
我正试图为一个项目做这样的事情C++ C++;模板化的、静态分配的数组,c++,arrays,templates,allocation,C++,Arrays,Templates,Allocation,我正试图为一个项目做这样的事情 模板 类MyClass { 浮动特性[N]; }; P>是否在C++中实现这一点?你需要的是值模板参数: template <size_t N> class MyClass { float properties[N]; }; //^^^^^^ note this 模板类MyClass{float properties[N];}; //^^^^^^注意这一点 现在您可以实例化这个类模板,将任何非负整数值作为模板参数传递。比如说,
模板
类MyClass
{
浮动特性[N];
};代码>
<> P>是否在C++中实现这一点?你需要的是值模板参数:
template <size_t N> class MyClass { float properties[N]; };
//^^^^^^ note this
模板类MyClass{float properties[N];};
//^^^^^^注意这一点
现在您可以实例化这个类模板,将任何非负整数值作为模板参数传递。比如说,
MyClass<10> c1; //N=10
MyClass<100> c1; //N=100
MyClass c1//N=10
MyClass c1//N=100
也可以通过以下方式传递常量表达式:
const size_t size = 200;
MyClass<size> c2; //N=200
const size\u t size=200;
MyClass c2//N=200
您需要的是值模板参数:
template <size_t N> class MyClass { float properties[N]; };
//^^^^^^ note this
模板类MyClass{float properties[N];};
//^^^^^^注意这一点
现在您可以实例化这个类模板,将任何非负整数值作为模板参数传递。比如说,
MyClass<10> c1; //N=10
MyClass<100> c1; //N=100
MyClass c1//N=10
MyClass c1//N=100
也可以通过以下方式传递常量表达式:
const size_t size = 200;
MyClass<size> c2; //N=200
const size\u t size=200;
MyClass c2//N=200
我不清楚您的期望是什么。由“某个随机类”索引的浮点数组我会说不,你不能那样做(但我没有达到最新和最好的标准;-)。我想说的是,您需要为此创建自己的数据结构,而不是依赖本机阵列。通常我会这样做,但这有点高性能。我不清楚您期望的是什么。由“某个随机类”索引的浮点数组我会说不,你不能那样做(但我没有达到最新和最好的标准;-)。我想说的是,您需要为此创建自己的数据结构,而不是依赖本机阵列。通常我会这样做,但这有点高性能!这就是我需要的标题,但现在我无法正确编译.cpp文件,当我尝试在类中放置任何函数时,MSVC告诉我“使用类模板需要模板参数列表”。知道为什么吗?@davidcarcenter:我怎么知道什么是.cpp
文件?它包含什么?MyClass成员函数的实现,比如构造函数,但VisualStudio用它突出显示了它们error@DavidCarpenter:模板的实现应该放在头文件本身中,否则它不会编译。因此,在头文件中定义类模板。阅读:模板在标题中,但是匹配的cpp文件给了我错误。谢谢!这就是我需要的标题,但现在我无法正确编译.cpp文件,当我尝试在类中放置任何函数时,MSVC告诉我“使用类模板需要模板参数列表”。知道为什么吗?@davidcarcenter:我怎么知道什么是.cpp
文件?它包含什么?MyClass成员函数的实现,比如构造函数,但VisualStudio用它突出显示了它们error@DavidCarpenter:模板的实现应该放在头文件本身中,否则它不会编译。因此,在头文件中定义类模板。阅读:模板在标题中,但匹配的cpp文件给出了错误