copy-constructor相关内容

实现复制构造函数

我有以下类定义,它需要一个复制构造函数,因此可以进行深层复制来复制原始指针。有人可以建议如何做到最好吗? 使用 xerces-c ++ for XML class XMLDocument { private: typedef std :: vector v_nodes; public: XMLDocument :: XMLDocumen ..
发布时间:2020-10-09 05:48:08 C/C++开发

自我毁灭:this-> MyClass ::〜MyClass()与this->〜MyClass()

在学习C ++的过程中,我偶然发现了文章编写副本构造函数和赋值运算符,其中提出了一种避免这种情况的机制复制副本构造函数和赋值运算符之间的代码。 为总结/复制该链接的内容,建议的机制为: 结构UtilityClass { ... UtilityClass(UtilityClass const& rhs) :data_( new int(* rhs_.data_)) { ..
发布时间:2020-10-09 05:47:54 C/C++开发

复制构造函数初始化列表

我知道,如果您将成员从无参数构造函数的初始化列表中删除,则会调用该成员的默认构造函数。 执行复制构造函数同样调用成员的副本构造函数,还是也调用默认构造函数? class myClass { 私人: someClass a; someOtherClass b; public: myClass():a(DEFAULT_A){} //表示为b() myClass(const ..
发布时间:2020-10-09 05:47:50 C/C++开发

为什么不调用复制构造函数

这是一个简单的类头文件和一个主程序。在主程序中,我认为复制构造函数在以下三种情况下被调用:初始化(显式复制),函数参数按值传递和函数按值返回。但是,似乎并没有要求其中之一,我认为注释中的编号是(3)或(4)。它针对哪个数字(1)-(4)? X.h: #include 类X { public: X(){std :: cout ..
发布时间:2020-10-09 05:46:36 C/C++开发

C ++ push_back,非const复制构造函数

我有一个想推送到双端队列的类。问题是当我后退时我需要更改原始对象,因此我需要一个非const复制ctor。现在,如果我实现了我的const copy ctor被调用。如果我删除了const ctor,则会收到有关没有可用ctor的编译错误。如何通过传递原始结构的方式实现此目的?我需要修改它,因为当类超出范围时该类会破坏对象,并且我想告诉它在周围还有另一个实例时不要这样做。我不能使用boost,因为 ..
发布时间:2020-10-09 05:46:29 C/C++开发

当我们按值从方法返回对象时,为什么调用复制构造函数

当我们按值从方法返回对象时,为什么调用复制构造函数。请参阅下面的代码,因为我正在从方法中返回一个对象,同时返回控件正在击中复制构造函数,然后返回。我不了解以下内容: 1)为什么调用副本构造函数。 2)哪个对象隐式传递给副本构造函数, 3)对象复制构造函数将内容复制到哪个对象, 4)返回时复制对象内容的必要性是什么。 #include“ stdafx.h” #in ..
发布时间:2020-10-09 05:45:25 C/C++开发

使用未初始化的成员复制结构

复制一个未初始化其成员的结构是否有效? 我怀疑这是未定义的行为,但如果这样,它将留下任何未初始化的成员在结构中(即使从未直接使用过这些成员)也很危险。所以我想知道标准中是否有允许它的东西。 例如,这是否有效? struct数据{ int a,b; }; int main(){ 数据数据; data.a = 5; 数据数据2 =数据; } 解决方 ..

Python:浅层和深层副本构造函数的实现

在大多数情况下,由于有指针的概念,因此在C ++中易于实现复制构造函数(或重载的赋值运算符)。但是,我对如何在Python中实现浅层复制和深层复制感到很困惑。 我知道其中一个库中有特殊命令,但它们没有在自己编写的课程上工作。那么常见的实现方式是什么? P.S。在某些基本数据结构(链接列表或树)上显示过程将受到赞赏。 编辑:谢谢,他们工作了,这是我在语法上的错误。 我对使用 __ ..
发布时间:2020-10-09 05:45:16 Python

使用复制构造函数后,双重释放子对象

我无法弄清楚为什么(似乎)一个对象被破坏了两次。 如果我创建一个包含以下内容的类(B)的对象,一个另一个类的对象(A),我复制了这个对象。复制的对象被破坏两次。虽然看起来像这样。我无法确定输出结果。 我创建了以下(最低要求)示例,似乎触发了我的问题: #include #include 模板 A类 { ..
发布时间:2020-10-08 19:44:23 C/C++开发