我有代码:
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值赋给同一位置,则调用下一个复制构造函数或赋值运算符?旧价值被妥善销毁了吗?
在你的例子中:
T* t = new T[10];
Run Code Online (Sandbox Code Playgroud)
调用T的默认构造函数(10次).然后
t[0] = x;
Run Code Online (Sandbox Code Playgroud)
调用赋值运算符.该语句不调用构造函数.
| 归档时间: |
|
| 查看次数: |
74 次 |
| 最近记录: |