C++拷贝构造函数与赋值运算符重载

03-08 1161阅读 0评论

C++拷贝构造函数与赋值运算符重载

C++拷贝构造函数与赋值运算符重载,C++拷贝构造函数与赋值运算符重载,词库加载错误:未能找到文件“C:\Users\Administrator\Desktop\火车头9.8破解版\Configuration\Dict_Stopwords.txt”。,使用,我们,管理,第2张
(图片来源网络,侵删)

顾得泉:个人主页

个人专栏:《Linux操作系统》 《C++从入门到精通》  《LeedCode刷题》

键盘敲烂,年薪百万!


一、拷贝构造函数

1.概念

       在现实生活中,可能存在一个与你一样的自己,我们称其为双胞胎。

C++拷贝构造函数与赋值运算符重载

       那在创建对象时,可否创建一个与已存在对象一某一样的新对象呢?

C++拷贝构造函数与赋值运算符重载,C++拷贝构造函数与赋值运算符重载,词库加载错误:未能找到文件“C:\Users\Administrator\Desktop\火车头9.8破解版\Configuration\Dict_Stopwords.txt”。,使用,我们,管理,第4张
(图片来源网络,侵删)

       拷贝构造函数:只有单个形参,该形参是对本类类型对象的引用(一般常用const修饰),在用已存在的类类型对象创建新对象时由编译器自动调用。

2.特性

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

     1.拷贝构造函数是构造函数的一个重载形式。

     2.拷贝构造函数的参数只有一个且必须是类类型对象的引用,使用传值方式编译器直接报错,因为会引发无穷递归调用。

class Date
{
public:
     Date(int year = 1900, int month = 1, int day = 1)
     {
         _year = year;
         _month = month;
         _day = day;
     }
     // Date(const Date& d)   // 正确写法
     Date(const Date d)   // 错误写法:编译报错,会引发无穷递归
     {
         _year = d._year;
         _month = d._month;
         _day = d._day;
     }
private:
     int _year;
     int _month;
     int _day;
};
int main()
{
     Date d1;
     Date d2(d1);
     return 0;
}

C++拷贝构造函数与赋值运算符重载

     3.若未显式定义,编译器会生成默认的拷贝构造函数。 默认的拷贝构造函数对象按内存存储按字节序完成拷贝,这种拷贝叫做浅拷贝,或者值拷贝。

C++拷贝构造函数与赋值运算符重载,C++拷贝构造函数与赋值运算符重载,词库加载错误:未能找到文件“C:\Users\Administrator\Desktop\火车头9.8破解版\Configuration\Dict_Stopwords.txt”。,使用,我们,管理,第6张
(图片来源网络,侵删)
class Time
{
public:
     Time()
     {
         _hour = 1;
         _minute = 1;
         _second = 1;
     }
     Time(const Time& t)
     {
         _hour = t._hour;
         _minute = t._minute;
         _second = t._second;
         cout 

免责声明
本网站所收集的部分公开资料来源于AI生成和互联网,转载的目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。
文章版权声明:除非注明,否则均为主机测评原创文章,转载或复制请以超链接形式并注明出处。

发表评论

快捷回复: 表情:
评论列表 (暂无评论,1161人围观)

还没有评论,来说两句吧...

目录[+]