1 / 26
文档名称:

拷贝构造函数01 图文.ppt

格式:ppt   大小:1,549KB   页数:26页
下载后只包含 1 个 PPT 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

拷贝构造函数01 图文.ppt

上传人:huiwei2002 2018/2/28 文件大小:1.51 MB

下载得到文件列表

拷贝构造函数01 图文.ppt

相关文档

文档介绍

文档介绍:C++的拷贝构造函数
深入理解拷贝构造函数
1
版权声明
该文档参考了郑秋生主编的《C/C++程序设计教程-----面向对象分册》,并加入了本人自己的理解,如果有错误或者理解不恰当的地方,还望指出
2
拷贝构造函数
C++允许同型变量之间的赋值,例如,int a = 100; int b = a;
对象是一种复杂的类类型,很多时候我们需要用一个对象去创建另外一个对象,或者将一个对象赋值给另一个对象,这时就需要用到拷贝构造函数。
3
拷贝构造函数的定义格式
拷贝构造函数的定义格式如下:
类名::拷贝构造函数名(类名& 引用名)
例如:
Cdate::Cdate(Cdate & c)
//形参是对象的引用
Cstring(const Cstring & str)
//形参是一个const的对象引用
4
调用拷贝构造函数的情形
通常在以下三种情况下,需要调用拷贝构造函数:
(1)明确表示由一个对象初始化另一个对象,如Cdate day(d1)。
(2)当对象作为函数实参传递给函数形参时,如fun(Cdate d1)。
(3)当对象作为函数的返回值,创建一个临时对象。
5
Example 1
设计一个复数类,两个数据成员分别表示虚数的实部和虚部。
两个构造函数分别在不同的情况下初始化对象,add函数完成两个虚数的加法,print函数用于输出函数。
6


#ifndef _COMPLEX_H
#define _COMPLEX_H
plex
{
public:
Complex(double r,double i);
plex &c);
Complex plex c);
void print(void);
private:
double real,image;
};
#endif
7

#"
#include<>
Complex::Complex(double r,double i):real(r),image(i)
{
cout<<"调用两个参数的构造函数"<<endl;
}
Complex::plex &c)
{
real = ;
image = ;
cout<<"调用拷贝构造函数"<<endl;
}
8

plex::print(void)
{
cout<<"("<<real<<","<<image<<")"<<endl;
}
plex::plex c)
{

Complex y(real + ,image + );
return y;
}
9

void plex n)
{
cout<<“n=";
();
}
10