码迷,mamicode.com
首页 > 其他好文 > 详细

github上的每日学习 10

时间:2020-02-07 18:33:53      阅读:77      评论:0      收藏:0      [点我收藏+]

标签:定义   修改   很多   hub   应用   运行机制   快捷   重载   返回   

一、 委托构造函数

委托构造函数用在什么地方呢?
当一个类里有许多构造函数的时候,往往会又很多重复的,这就像重载函数一样,这时候C++就给出了委托构造函数来解决这个问题!
理解机制:就是一个构造函数委托另一个构造函数来完成任务。
例子:

原来需要写的两个构造函数:

技术图片

应用了委托构造函数之后:

技术图片

其实这就相当于在第二构造函数里面调用第一个构造函数完成赋值。这样做的好处是保持修改的方便快捷!

二、 复制构造函数

用在什么地方:想要把一个已有对象赋值给新对象的时候。
运行机制:赋值啦!
编译器会构造默认的复制构造函数。
使用说明:它的形参是本类对象的引用。
语法:

声明:
Class 类名{
Public:
类名(形参);//构造函数
类名(const 类名&对象名);//赋值构造函数,const的作用,已经学习过引用是可以双向传递的,所以要保证赋值过后就要两个对象无关,所以这时候写const保证是一次赋值。

}
定义
类名::类(const 类名&对象名)//复制构造函数的实现
{函数体}

参数是类的对象是会发生复制构造,返回值是对象是也会产生复制构造。当然隐含的赋值构造函数会大部分解决的。(没有指针成员)
当然,也有一些情况下不想要编译器生成隐含的赋值构造函数,这时候可以用delete

在class中写上:
Class 类名{
Public:
类名(形参);//构造函数
类名(const 类名&对象名)=delete;//不生成隐含的复制构造函数 
}

三、 赋值构造函数的练习

Point::Point(const Point &p)
{
    X=p.x;
    Y=p.y;
Cout<<”Calling the copy constructor”<<endl;
}

四、 析构函数

用在哪?
对象被删除后完成一些清理工作!
编译器还是有默认析构函数。
语法:

类中声明:

~Point();

定义析构函数:

Point::~Point(){ }
参数表必须为空。

github上的每日学习 10

标签:定义   修改   很多   hub   应用   运行机制   快捷   重载   返回   

原文地址:https://www.cnblogs.com/zouzou-1/p/12266552.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!