copy-assignment相关内容

C++ 对象实例化与赋值

这有什么区别: TestClass t; 还有这个: TestClass t = TestClass(); 我预计第二个可能会调用构造函数两次,然后是 operator=,但它只调用了一次构造函数,就像第一个一样. 解决方案 TestClass t; 调用默认构造函数. TestClass t = TestClass(); 是一个复制初始化.它将调用 TestClass() ..
发布时间:2021-12-30 15:32:07 C/C++开发

我可以为 QObject 的子类设置复制构造函数吗?

这里 我们可以读到没有复制构造和复制赋值运算符可评估.但是这里我们可以读到qRegisterMetaType 和 Q_DECLARE_METATYPE 必须有公共默认构造函数、公共复制构造函数和公共析构函数.问题是:谁在说谎?还是我没有正确理解? 解决方案 一切都是真的: 1.QObject不能被复制,它的所有后代也不能被复制. 2. Q_DECLARE_METATYPE 接受带有公共 ..
发布时间:2021-12-09 17:13:22 C/C++开发

复制赋值运算符什么时候调用?

当我阅读有关复制构造函数和复制赋值构造函数的信息时,我了解到两者都将它们的属性相互赋予,并且它们都是由编译器隐式声明的(如果未定义)。所以无论是否做有用的事情,两者都必须存在。 然后我测试了这段代码: #include 使用命名空间std; 类测试{ public: Test(){ cout ..
发布时间:2020-09-27 03:21:32 C/C++开发

数组vs标量中的python赋值

我有一个形状为(4,3)的2D数组A和一个形状为(4,)的1D数组a.我想交换A的前两行以及a中的前两个元素.我做了以下事情: A[0,:],A[1,:] = A[1,:],A[0,:] a[0],a[1] = a[1],a[0] 显然,它适用于a,但不适用于A.现在,第二行变为第一行,但第一行保持不变.如果我执行以下操作: first_row_copy = A[0,:].copy ..
发布时间:2020-07-18 01:29:38 Python

有没有更好的方法将新值分配给numpy数组标量?

我正在对numpy数组中的标量值进行一些快速计算.正如文档 使用数组标量的主要优点是它们保留了 数组类型(Python可能没有匹配的标量类型,例如 int16)... 但是,有比这更好(更快,更简洁)的方式将新值分配给现有数组标量了: >>> x = np.array(2.0, dtype='float32') 可以,但是不太方便(我正在做其他算术,并且希望保留整个类型). ..
发布时间:2020-05-18 23:51:03 Python

实现提供了拷贝构造函数和赋值运算符

我有一个小小的困惑,其中的实现(编译器)将不提供副本构造函数和副本赋值运算符。 >当我们在类中声明复制ctor和/或复制赋值操作符时。 有人说当我们从一个有私有复制ctor和/或复制赋值操作符的类派生时。 / li> 我对第二种情况有点困惑,是第二种情况正确。 a)不会为你声明它们,所以你会得到编译时错误。 OR b)实现将声明和定义它们,但是当编译器定义的实现尝试找到基 ..
发布时间:2016-10-25 13:53:57 C/C++开发

使用数组成员的默认副本分配

我有一个类定义类似于以下内容: class UUID { public: //使用隐式拷贝赋值运算符 private: unsigned char buffer [16]; }; 我刚刚有一个单元测试失败,我正在验证副本分配工作正常。我惊讶的是,在缓冲区[]数组中间的一个字节被不正确地复制。 我的理解是,默认的副本赋值操作符执行成员复制,数组成员( ..
发布时间:2016-10-24 12:48:55 C/C++开发

我可以有复制构造函数的QObject的子类吗?

这里我们可以看到,没有复制结构和复制赋值运算符可评价。但是此处我们可以阅读 qRegisterMetaType 和 Q_DECLARE_METATYPE 必须具有公共默认构造函数,公共副本构造函数和公共析构函数。问题是:谁在说谎? 解决方案 一切都是真的: 1. QObject 无法复制,其所有后代也无法复制。 2. Q_DECLARE_METATYPE 接受对象与公共构造函数 ..
发布时间:2016-10-14 11:29:19 C/C++开发

与数组成员默认拷贝赋值

我有类似下面的类定义: 类UUID { 上市: //使用隐含的拷贝赋值运算符 私人的: 无符号字符缓冲区[16]; }; 我刚刚有了一个单元测试失败对我这是验证了拷贝赋值工作正常。令我惊讶的是,在缓冲区[]数组中间的一个字节被错误地复制。 我的理解是,默认的拷贝赋值运算符执行成员复制,这对于阵列成员(不指针到数组成员)是引起该数组按元素副本。是我错了? 我的直觉感觉这里 ..
发布时间:2016-06-02 21:55:12 C/C++开发

为什么不数组分配在C / C ++?

一个可以分配一个结构到另一个,这导致从结构的所有值复制到另一个 结构 { 诠释A,B,C; } A,B;... A = B; 但是,为什么是数组不可转让这样的: int类型的[3],B [3]; ... A = B; 由于严格来说,都只是结构与可变大小的数组元素,所以这是为什么不允许?这种分配是未使用的反正。当然,它可能看起来像只地址都参与其中,但可以很容易地复制阵列那样(“静态 ..
发布时间:2016-06-01 20:45:29 C/C++开发