c++ - 你能在类初始化列表中定义数组大小吗

标签 c++ arrays class initializer-list

是否可以在不使用 hack 的情况下以合理的方式定义类中对象数组的大小而不使数组大小为静态。例如。

class Byte_Buffer
{
    Byte_Buffer(uint16_t bs) : buf_size(bs) {}

    const uint16_t buf_size;

    uint8_t storage[ buf_size ]; 
}; 

最佳答案

template < int ARRAY_LEN >//你甚至可以在此处设置为 C++'11 的默认值

类我的类 {
int array[ARRAY_LEN];//不需要在结构中分配或释放!像您想象的那样工作!

//然后在声明对象的地方设置每个对象的长度,例如

MyClass<1024>实例;//但只适用于常数值,即编译器已知的值

关于c++ - 你能在类初始化列表中定义数组大小吗,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50290255/

相关文章:

c# - 调用更改组件(标签)的父类(super class)函数

c++ - 如何将使用 tchar.h 处理 unicode 的 Windows C++ 移植到 iOS 应用程序

C++:内存映射文件上的 Fetch_add

class - 您如何根据您使用的方法命名一个既加密又解密的组件?

sql - 如果数组重叠,则折叠多行数组

c++ - 使用带对象的数组调用类中的方法,错误 "non-class type",c++

java - 在Java中,有没有一种方法可以从该类创建/使用的对象内部访问该对象?

c++ - [C++] 在此代码之前不存在的析构函数中抛出的内存错误。尝试制作一个新的动态数组并填充它

c++ - C++ 核心库的编译错误

javascript - 在 PHP 中以不完整的格式接收 JSON 数据?