小工具知识网

当前位置: 首页 > 行业知识 > 【C++】拷贝构造函数和赋值运算符重载详解

行业知识

【C++】拷贝构造函数和赋值运算符重载详解

2026-10-25 13:56:17 来源:互联网转载

���录

拷贝构造函数

概念

特征

赋值运算符重载

运算符重载

赋值运算符重载

​编辑前置++和后置++重载


⭐拷贝构造函数

⭐概念

拷贝构造函数:只有单个形参,该形参是对本类类型对象的引用(一般常用const修饰),在用已存

在的类类型对象创建新对象时由编译器自动调用。

拷贝构造函数是一个特殊的构造函数,用于创建一个新的对象,其内容与另一个已存在的对象相同。在C++中,拷贝构造函数通常用于将一个对象的值复制到另一个对象中(一个对象存在,一个对象不存在),以便在程序中进行对象的赋值和传递操作时,能够确保对象的内容被正确复制。

⭐特征

拷贝构造函数也是特殊的成员函数,其特征如下:

  1. 拷贝构造函数是构造函数的一个重载形式。(函数名也与类名相同,第一个参数是隐式的this,第二个参数是被拷贝的对象,如果我们自己实现了拷贝构造函数,也要自己实现一个构造函数,否则会报错,如图:)
  2. 拷贝构造函数的参数只有一个且必须是类类型对象的引用,如果使用传值方式编译器直接报错,因为会引发无穷递归调用。(C++规定自定义类型传值传参时都会调用它的拷贝构造,因为传值传参时,形参相当于一份拷贝,如果拷贝构造函数也是用传值的形式写的,那么它会继续寻找真正的拷贝构造函数,造成无穷递归)传值的后果:
  3. 若未显式定义,编译器会生成默认的拷贝构造函数。 默认的拷贝构造函数对内置类型成员按内存存储按字节序完成拷贝,自定义类型成员调用它的拷贝构造函数(事实上最后还是对内置类型做处理),这种拷贝叫做浅拷贝,或者值拷贝。
    class Time{public:Time(){_hour = 1;_minute = 1;_second = 1;}Time(const Time& t){_hour = t._hour;_minute = t._minute;_second = t._second;cout 

上一篇:wall英语怎么拼读?

下一篇:初识java———javaSE(5)继承与多态【求个关注!】