重置动态数组项的默认构造函数

时间:2018-11-09 09:44:39

标签: c++ oop

我需要实现不带参数的构造函数,该参数会将动态数组的项目初始化为零。我想做这样的事情:

MyType()
{
    p = new int[Size];
    for (int i = 0; i<Size; i++)
    {
        p[i] = 0;
    }
}

但是我知道,默认构造函数无法使用任何参数来定义其大小。而且,稍后我需要从键盘输入动态数组的大小。 有什么解决办法吗?

2 个答案:

答案 0 :(得分:5)

使用std::vector<int>(是一个动态数组)作为类的成员。实际上,您不需要初始化,它支持高级概念,例如保留内存。

https://en.cppreference.com/w/cpp/container/vector

答案 1 :(得分:0)

如前所述,最好使用std::vector而不是动态数组,否则您可能要自己承担使用realloc的风险。