相关疑难解决方法(0)

如何使`new []`default-initialize原始类型数组?

我不时需要调用new[]内置类型(通常char).结果是一个具有未初始化值的数组,我必须使用memset()std::fill()初始化元素.

如何进行new[]默认初始化元素?

c++ arrays initialization

23
推荐指数
2
解决办法
9954
查看次数

c ++中的new运算符+默认构造函数

这里已经讨论了这个问题[链接] new []是否在C++中调用默认构造函数?

作为一个初学者和一个自学者,将赞赏积极的评论,请不要将其概括为广泛,狭隘等

当我们使用new []时,每个元素都由默认构造函数初始化,除非类型是内置类型.默认情况下,内置类型保持单一化.

这里有人说默认构造函数初始化对象是什么意思?是不是每个对象现在都将键初始化为零(由默认构造函数),因为当我打印p [2] .key时这是真的?

如何检查默认构造函数是否初始化数组或不是int数组,它无法访问main中的成员键?

另外(i)打印垃圾值,但(ii)打印0;

class People
{
    public:
      int key;
    People()
    {
        key=0;
    }
};

int main()
{
   int count=5;
   People *p=new People[count];
   cout<< p[2].key;

   // int *arr=new int[count]; ...(i)
   //cout<<*(arr+2);

  //int *arr=new int[count](); ... (ii)
 //cout<<*(arr+2)<<endl;

 return 0;
}
Run Code Online (Sandbox Code Playgroud)

c++

2
推荐指数
1
解决办法
566
查看次数

标签 统计

c++ ×2

arrays ×1

initialization ×1