Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/127.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ C++;模板化的、静态分配的数组_C++_Arrays_Templates_Allocation - Fatal编程技术网

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文件给出了错误