c++ - 在数组中的相同位置赋值

标签 c++

我有代码:

T x,y;
T* t = new T[10];
t[0] = x;
t[0] = y;

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

t[0] 是取消引用的指针? 因此,如果我分配值 x,则复制 x(调用 T 复制构造函数);

下一步,如果我将 y 值分配给相同的位置,则调用下一个复制构造函数或赋值运算符?旧值是否被正确销毁?

最佳答案

在你的例子中:

T* t = new T[10];

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

t[0] = x;

调用赋值运算符。此语句不调用构造函数。

关于c++ - 在数组中的相同位置赋值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9173819/

相关文章:

c++ - 移动鼠标时抖动

c++ - atlbase.h和不同版本的VC CRT

c++ - 为什么所有cout和cin的“未声明标识符

c++ - 在启动特定子进程后挂起进程

c++ - i2c smbus 过滤器函数破坏变量

c++ - 从基类转换为派生类是未定义的行为吗?

c++ - 动态异常规范已弃用

c++ - 如何使 std::variant<..> 可用于 QVariant?

c++ - 如何编写模板函数,其参数类型需要继承某个类

c++ - Qt/QML 从 C++ 类为 GridView 设置属性