什么是复制构造函数?(a copy constructor?)

复制构造函数是C++中的特殊函数,以及C++所影响的其他语言,它复制编码对象。程序员通过添加复制构造函数声明和引用对象来实现这一点。这主要有利于程序员节省时间,但也可以确保程序员不会错误地输入对象的编码。复制时,它必须具有不同的内存指针,否则它将指向原始对象所指向的同一节。使用复制构造函数的一个主要缺点是它们不能独立工作;如果原始对象被删除,则副本也将被删除。...

复制构造函数是C++中的特殊函数,以及C++所影响的其他语言,它复制编码对象。程序员通过添加复制构造函数声明和引用对象来实现这一点。这主要有利于程序员节省时间,但也可以确保程序员不会错误地输入对象的编码。复制时,它必须具有不同的内存指针,否则它将指向原始对象所指向的同一节。使用复制构造函数的一个主要缺点是它们不能独立工作;如果原始对象被删除,则副本也将被删除。

When a programmer uses a copy constructor, he or she is telling the code to copy an object already listed in the code.

当程序员使用复制构造函数时,他或她告诉代码复制代码中已经列出的对象。要做到这一点,程序员必须首先使用声明来告诉代码执行复制功能。程序员还必须引用另一个对象,因此该对象必须已经生成,否则将无法执行复制。

使用复制构造函数的主要好处是节省时间。程序员不必重新键入相同的函数并重新编码,只需添加一个引用,对象就可以准备好了。这在一致和准确的编码中还有另一个隐藏的好处。只要原始对象的编码正确,复制的对象也将具有正确的编码。这两个好处在复杂对象中最为明显,但程序员也可以从复制简单对象中获益。

在C++语言中,许多函数需要一个内存指针。这会准确地告诉函数在内存中查找某些信息的位置,或者它可以存储数据的位置。当使用复制构造函数时,程序员必须指定一个新的内存指针;否则,两个对象将使用相同的内存空间。从表面上看,这似乎不坏,但可能会导致不一致。例如,如果两个对象共享同一指针,一个对象用于提交贷款申请,而复制的对象用于提交信用卡申请,则所有信用卡申请都将与贷款申请一起存储。

程序员必须小心删除对象,因为复制构造函数对象不能独立运行。如果程序员删除了原始对象,那么复制的对象将没有任何引用。如果没有可引用的代码,复制的对象将无法执行其任务,并且将变得无用。

  • 发表于 2021-12-10 09:27
  • 阅读 ( 52 )
  • 分类:互联网

你可能感兴趣的文章

建造师(constructor)和析构函数(destructor)的区别

关键区别–构造函数与析构函数 大多数编程语言都支持面向对象编程(OOP)。它是帮助使用对象对软件或程序进行建模的范例。OOP提高了生产力和可维护性。在OOP中,一切都被视为一个对象。对象是使用类创建或实例化的。...

  • 发布于 2020-10-18 11:50
  • 阅读 ( 284 )

属性(attribute)和参数(parameter)的区别

...文讨论了属性与参数的区别。 目录 1. 概述和主要区别 2. 什么是属性 3. 什么是参数 4. 并列比较-表格形式的属性与参数 5. 摘要 什么是属性(attribute)? Java等编程语言支持面向对象编程。这种编程范式是基于对象的。物体有一种状...

  • 发布于 2020-10-19 02:04
  • 阅读 ( 628 )

这(this)和超级java(super in java)的区别

...直接超类对象。 目录 1. 概述和主要区别 2. 这在Java中是什么 3. Java中的超级是什么 4. Java中this和super的相似性 5. 并排比较——这与表格形式的Java中的super相比 6. 摘要 什么是这是java语言(this in java)? 关键字“this”用于引用当前...

  • 发布于 2020-10-19 18:17
  • 阅读 ( 395 )

复制(copy)和复制(duplicate)的区别

...区别。事实上,复制和复制的区别都来自于这些含义。 什么是一份副本(a copy)? “复制”一词通常用在“复制”的意思上,意思是“复制”是原作的复制结果。不过,你应该记住,我们也可以从另一个副本复制一个副本。看下...

  • 发布于 2020-11-04 11:40
  • 阅读 ( 1158 )

学习python?下面是如何复制文件

...hon在计算机上执行一些任务。使用Python将文件从一个目录复制和粘贴到另一个目录是一种有趣的方法。 ...

  • 发布于 2021-03-11 10:45
  • 阅读 ( 353 )

马洛克(malloc)和新的(new)的区别

...新的内存必须有一个修改过的大小,并且将从原始缓冲区复制数据。必须在复制后删除原始缓冲区。对于程序员来说,这可能是一个缓慢的过程。 运算符new通过返回精确的数据类型而函数返回void*,从而对函数malloc具有优势。与...

  • 发布于 2021-06-23 19:10
  • 阅读 ( 210 )

建造师(constructor)和析构函数(destructor)的区别

类是面向对象编程(OOP)的核心。它就像创建对象的蓝图,为成员变量和成员函数提供初始值。它是OOP的基本构建块,定义了未来对象的性质。类最重要的一点是它定义了一个新的数据类型,一旦定义了,就可以用来创建该类型...

  • 发布于 2021-06-25 08:36
  • 阅读 ( 281 )

建造师(constructor)和方法(method)的区别

类是Java的核心。它是一个可扩展的程序代码模板,用于定义对象的形状和性质。可以说类是面向对象语言(如Java)的基本构建块。任何要在Java程序中实现的概念都必须封装在一个类中。类和对象是面向对象编程的基本概念。 Ja...

  • 发布于 2021-06-25 08:37
  • 阅读 ( 445 )

建造师(constructor)和方法(method)的区别

构造函数和方法之间的主要区别在于,构造函数是类中的一个特殊方法,用于初始化该类的对象,而方法是执行与类关联的一组指令的过程或函数。 大多数高级编程语言都支持面向对象编程(OOP),这是一种允许程序员在计算...

  • 发布于 2021-07-01 05:24
  • 阅读 ( 262 )

违约(default)和参数化构造函数(parameterized constructor)的区别

默认构造函数是一种在程序员没有在程序中定义任何构造函数时自动调用的构造函数。相反,参数化构造函数是程序员通过传递参数给类中的实例变量初始值而定义的一种构造函数。这就是默认构造函数和参数化构造函数的主要...

  • 发布于 2021-07-01 05:25
  • 阅读 ( 691 )
啥事儿
啥事儿

0 篇文章

相关推荐