C++之拷贝构造函数
来源:互联网 发布:mac来自身份不明 编辑:程序博客网 时间:2024/06/06 07:12
拷贝构造函数:是一种特殊的构造函数,其形参的本类的对象。
作用:用一个已知的对象去初始化另一个同类对象。
性质:
第一,因为拷贝构造函数也是一种构造函数,所以其函数名也与类名相同,并且也没有返回值类型。
第二,拷贝构造函数只有一个参数,并且是同类对象的引用。
第三,每个类必须有一个拷贝构造函数。可以自定义拷贝构造函数,如果程序员没有自己定义,系统会自动生成一个缺省的拷贝构造函数。
一、自定义的拷贝构造函数。
自定义的拷贝构造函数,可以有选择的、有变化地赋值。
格式:类名::类名(类名& 对象名){ }
示例:
class Project{ private: double math; double english; public: Project(double m,double e); Project(Project& p); ~Project(); void show();};Project::Project(double m,double e){ math=m; english=e;}Project::Project(Project& p){ math=2*p.math; english=2*p.english;}Project p1(75.5,68.9);p1.show();Project p2=p1;p2.show();Project p3(p2);p3.show();
二、缺省的拷贝构造函数。
如果没有自定义的拷贝构造函数,系统会生成一个缺省的拷贝构造函数,没有改变的赋值给同类的对象。
示例:
class Project{ private: double math; double english; public: Project(double m,double e); ~Project(); void show();};Project::Project(double m,double e){ math=m; english=e;}Project p1(75.5,68.9);p1.show();Project p2=p1;p2.show();Project p3(p2);p3.show();
三、调用拷贝函数的三种情况。(自己感觉应该是调用缺省的拷贝构造函数)
第一,当用一个对象初始化另一个同类的对象时。
第二,当函数的形参是类的对象,调用函数,进行形参和实参结合时。
第三,当函数的返回值是对象,函数执行完成,返回对象时。
- 【C++】拷贝构造函数
- C++:拷贝构造函数
- c++"拷贝构造函数
- C++: 拷贝构造函数
- 【C++】拷贝构造函数
- c++::拷贝构造函数
- 【C++】:拷贝构造函数
- 【C++】拷贝构造函数
- C++:拷贝构造函数
- C++_拷贝构造函数
- C++_拷贝构造函数
- 拷贝构造函数(C++)
- 拷贝构造函数(C++)
- C/C++ 拷贝构造函数
- c++(拷贝构造函数)
- 【原创】大话C、C++之 危险的拷贝构造函数
- C++/CLI思辨录之拷贝构造函数
- C++/CLI思辨录之拷贝构造函数
- VPN DNS leak 问题的解决
- Android中使用Thread线程出现的问题
- 昨天的你造就今天的你,今天的你准备怎么造就明天的你呢?
- java一些中级概念
- 2013年广州盛成php开发工程师第一轮笔试回顾
- C++之拷贝构造函数
- 从用户体验角度谈互联网发展趋势
- Kelly Clarkson - Catch My Breath
- [Python] List & 深浅复制
- oracle 数据库基础
- 不法商家预装软件偷流量
- 《设计模式》笔记1.1-What is a Design Pattern?
- 几种经典的滤波算法(转)
- Oracle mysql 自动增长