C++ 拷贝构造函数与赋值运算符的区别2024年8月28日 | 阅读 4 分钟 C++ 是一种通用、中级、区分大小写、平台无关的计算机语言,支持面向对象编程思想。Bjarne Stroustrup 于 1979 年在贝尔实验室开发了 C++ 编程语言。由于 C++ 是一种平台独立的编程语言,因此它可以在各种操作系统上使用,包括 Windows、Mac OS 和不同的 UNIX 版本。 赋值运算符用于将值赋给上述组中的变量。 在深入研究复制构造函数之前,让我们先了解一下构造函数。当对象被创建时,一个特定的方法(称为构造函数,它与类名同名,并带括号“()”)会自动调用。构造函数用于初始化新创建对象的变量。 复制构造函数是一种构造函数,它使用同一类中已创建的对象来初始化新对象。 现在,让我们回顾一下这个概念的细节,并对比和比较赋值运算符和复制构造函数的特性。 描述赋值运算符赋值运算符用于为变量赋值。赋值运算符的左操作数是变量名,右操作数是该变量的值。如果两个操作数的数据类型不匹配,将触发编译错误。 赋值运算符有多种形式。 := 运算符。只将值赋给变量。例如,如果“a=10”,则变量“a”将被赋值为 10。 += 运算符首先将变量的当前值乘以右侧的值,然后赋新值。 “-=” 运算符首先从右侧的值中减去变量的当前值,然后附加新值。 为了给变量赋新值,*= 运算符首先将变量的当前值乘以右侧的值。 除法运算符 /= 首先将变量的当前值除以右侧的值,然后将新值赋给变量。 赋值运算符示例下面是赋值运算符的示例。在此示例中,赋值运算符用于为多个变量赋值。 输出 在上面的示例中使用了两个变量“a”和“b”,我们首先使用赋值运算符“=”将“a”的值设置为 5。我们将变量 b 的值赋给了变量 a。上述代码的输出如下所示。 The value of a is 5. The value of b is 5. 什么是复制构造函数?程序员经常需要这样做,以便复制一个对象而不影响原始对象。在这种情况下使用复制构造函数。复制构造函数通过使用同一类中已构建的另一个对象初始化新对象来创建对象。复制构造函数有两种类型。 当未声明复制构造函数时,C++ 编译器会创建默认复制构造函数,它会原样复制所有成员变量。 用户定义的复制构造函数:此术语指的是用户已定义的复制构造函数。 语法 复制构造函数的语法是 - 赋值运算符和复制构造函数的比较所有这些 C++ 概念的主要功能都是赋值,但它们之间的主要区别在于,复制构造函数创建新对象并赋值,而赋值运算符将值赋给同一对象的数据成员,而不是新对象。 下表显示了赋值运算符和复制构造函数之间的主要区别。
|
面向对象编程中的一个关键思想叫做“包含”,它能够用更简单的结构构建复杂的数据结构。包含本质上是将一个对象放入另一个对象的做法。通过利用对象指针,可以开发复杂的...
阅读 4 分钟
C++ 程序通过数学方式操作 valarray 元素,展示了 C++ 标准库的 valarray 容器以及可对其元素执行的各种算术运算。这是该程序的基础理论:Std::valarray: Std::valarray 是一个容器类,来自...
阅读 3 分钟
在本文中,我们将讨论如何用不同的方法计算 C++ 中最多一个字符频率为奇数的子字符串的数量。字符串中连续的字符子集或序列称为子字符串。现在有必要确定...
阅读 4 分钟
C++ 中的 Kruskal 算法树在计算机科学和数据结构领域对于有效地组织和管理数据至关重要。在实际应用中,树是用于描述各种连接和层次结构的层次结构。它们是计算机科学的基石...
11 分钟阅读
随着时间的推移,C++ 的功能和类型特性武器库不断扩展,语言不断改进,为开发人员提供了一个强制其代码正确性和有效性的据点。is_trivial 是其中一种类型特性,在元编程和基于模板的...
阅读 3 分钟
健壮的 C++ 程序通常包括异常处理。在程序执行期间,当发生错误或异常情况时,C++ 允许用户通过利用 try、throw 和 catch 语句以一种优雅的方式处理它们。此机制的一个重要组成部分是 what() 函数,...
阅读 3 分钟
Karatsuba 算法是一种高效的乘法算法,它使用分治策略来有效地乘以两个数字。Karatsuba 在 1960 年发现了该算法,它以其递归方法而闻名,与传统的“学校”方法相比,该方法减少了递归调用的次数...
阅读9分钟
引言:随着信息时代的到来,产生了海量数据。由于需要保护人们的隐私,保护敏感信息变得越来越重要。因此,信息在网络传输和系统内存存储过程中受到保护的方式...
11 分钟阅读
在本文中,我们将讨论如何在 C++ 中找到最大乘积子数组。查找给定数组中正数和负数子数组的最大乘积。预计时间复杂度为 O(n),并且唯一可用的额外空间为 O(1)。示例:输入:arr[] =……
阅读 3 分钟
在处理 C++ 编程时,格式化输出在提高代码可读性和用户友好性方面起着至关重要的作用。在控制输出格式的可用工具中,setf() 函数是一项有价值的功能。这篇博文将深入探讨 setf() 函数...
阅读 3 分钟
我们请求您订阅我们的新闻通讯以获取最新更新。
我们提供所有技术(如 Java 教程、Android、Java 框架)的教程和面试问题
G-13, 2nd Floor, Sec-3, Noida, UP, 201301, India