Hello,我是修齊。
学习C++的第一百零六天,每天强迫自己看一点,看不懂也要看,很心累,但也相信会有甜的那天。
在这里记录一些学习的东西和学习的心情,内容主要是一些自己学习整理的小笔记。
用一个已经存在的对象来初始化该类的新对象,一个是用户定义拷贝构造函数,另一个系统生成默认的拷贝构造函数。
1.定义拷贝构造函数
2.调用拷贝构造函数
1.自定义拷贝构造函数的形式
类名(类名&对象名)
{
拷贝构造函数的函数体
}
class ypoint
{
private:
double fx,fy;//定义私有成员
public:
point(point &p);//声明拷贝构造函数
void sowpoint();
};
point ::point(point &p)//定义拷贝构造函数
{
fx=p.fx+10;//定义拷贝构造函数的功能
fy=p.fy+20;
}
point ::point (double x,double y)//定义构造函数
{
fx=x;
fy=y;
}
void point ::showpoint()//定义成员函数
{
cout<
point p1(1.1,2.2);//用构造函数创造对象p1
cout <<"the fx and fy of p1:";
p1.showpoint();//调用类的成员函数
point p2(p1);//用默认拷贝构造函数创建对象p2
cout <<"the fx and fy of p2:";
p2.showpoint();//调用类的成员函数
}
2.调用拷贝构造函数,在一个对象的基础上再创建另一个对象
1.用类的对象去初始化该类的另一个对象
2.函数的形参是类的对象,调用函数进行形参和实参的结合
3.函数的返回值是类的对象,函数执行完返回调用者
class point//定义类
{
private://定义私有成员
int x,y;
public:
point (int a=0,int b=0)//定义构造函数
{
x=a;
y=b;//初始化成员变量
}
point(point &p);//声明拷贝构造函数
int getx()//定义成员函数
{
return x;//取成员变量x的值
}
int gety()
{
return y;//取成员变量y的值
}
};
point ::point(point &p)//定义拷贝构造函数
{
x=p.x+10;//拷贝构造函数的功能
y=p.y+20;
cout<<"调用拷贝构造函数“<
cout<
point q(3,5);//调用拷贝构造函数
return q;
}
void main()
{
point p1(2,4);//调用构造函数创建对象p1
point p2(p1);//调用拷贝构造函数的第一种情况
cout<
1.定义类point和拷贝构造函数point(point &p)。
2.在主函数main()中,用构造函数声明对象p1。
3.使用三种形式调用拷贝函数声明了对象p2,并输出该对象的x和y值。
三、默认拷贝构造函数
class point//定义类
{
private:
double fx,fy;//定义私有成员
public:
point(double x,double y);//声明拷贝构造函数
void showpoint();//声明成员变量
};
point::point(double x,double y)//定义构造函数
{
fx=x;
fy=y;//初始化成员变量
}
void point ::showpoint()//定义成员函数
{
cout<
point p1(1.1,2.2);//用构造函数创建对象p1
cout<<"the fx and fy of p1:"<
1.定义构造函数point(double x,double y)
2.在main()中创建对象p1时系统自动调用该函数,创建p2时系统自动调用默认的构造函数来实现p2的创建
四、小脑袋,大疑问
类=>构造函数=>拷贝构造函数
似懂非懂 = 看得不够
加油~ —— ~
上述内容如有侵权,联系即删。
感谢阅读-感谢支持



