在数组中的相同位置分配值

use*_*rbb 0 c++

我有代码:

T x,y;
T* t = new T[10];
t[0] = x;
t[0] = y;
Run Code Online (Sandbox Code Playgroud)

会发生什么: new T[10]使数组调用默认构造函数.

t[0]被解除引用的指针?所以,如果我赋值x,x则复制(T复制构造函数被调用);

next如果我将y值赋给同一位置,则调用下一个复制构造函数或赋值运算符?旧价值被妥善销毁了吗?

Jam*_*nze 7

在你的例子中:

T* t = new T[10];
Run Code Online (Sandbox Code Playgroud)

调用T的默认构造函数(10次).然后

t[0] = x;
Run Code Online (Sandbox Code Playgroud)

调用赋值运算符.该语句不调用构造函数.