header 中的c++数组声明

标签 c++ arrays dynamic header

我想知道是否可以声明一个数组(此时大小未知)作为类的私有(private)成员,然后在类的构造函数中设置大小。例如:

class Test {
int a[];
public:
Test(int size);
};

Test::Test(int size) {
a[size];   // this is wrong, but what can i do here?
}

这是可能的还是我应该使用动态数组?谢谢!

最佳答案

简短回答:否(数组的大小仅在编译时定义)
长答案:

您可以使用 vector 来获得相同的结果:

class Test
{
    std::vector<int> a;
    public:
        Test(std::size_t size):
            a(size)
        {}
};

关于 header 中的c++数组声明,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/322086/

相关文章:

javascript - 如何删除元素

c++ - 替代虚函数调用实现?

c++ - 为什么这段代码中没有调用复制构造函数?

c++ - 如何知道谁是给定线程 ID 的父线程

javascript - 查找两个数组之间匹配的对象值的计数

css - 创建动态菜单

c++ - 传递lambda函数的权衡是什么?

javascript - 对多维对象数组进行排序

php - SQL/PHP 多值过滤(AND LIKE 'array[1]' AND LIKE 'array[2]' )

javascript - extjs3.4 : How to access items in a panel that do not have id/itemId