编译时不同的静态数组大小

时间:2014-10-09 19:37:34

标签: c++ embedded

假设我有一个包含数组的类。在编译时我知道数组的大小。如何使用不同大小的数组创建此类的实例?

class MyClass {
    private:
        const unsigned size;
        int data[size];
    /* More stuff here... */
}

MyClass c1(4);    /* Array size of 4  */
MyClass c2(16);   /* Array size of 16 */

我无法使用new / delete,因为动态内存已用完。我也不能使用模板,因为我主要针对嵌入式系统。没有模板,这种事情是否可能?

1 个答案:

答案 0 :(得分:1)

您可以尝试使用模板,如下例所示:

template <int size>
class MyClass {
    private:
        int data[size];
        /* More stuff here... */
};  

MyClass<4> c1 ;    /* Array size of 4  */
MyClass<16> c2;   /* Array size of 16 */