当前位置: 首页>编程语言>正文

c++类的默认成员函数:构造函数

在c++中有六种默认成员函数,比如构造函数、析构函数等等,它们在程序员不书写的时候也会自动生成,发挥着重要的作用,今天我们就一起来探究一下构造函数。

c++类的默认成员函数:构造函数,c++类的默认成员函数:构造函数_this指针,第1张

在讲构造函数之前,我们还要补充一些类开辟空间的知识

注意如果定义了成员变量,成员变量是占用空间,它是按照C语言中的结构体的内存对齐方式来开辟空间的

c++类的默认成员函数:构造函数,c++类的默认成员函数:构造函数_构造函数_02,第2张

类中还存在一个默认的指针,叫做this指针,我们不能在形参中写this指针,但是我们可以在函数体中使用this指针。

c++类的默认成员函数:构造函数,c++类的默认成员函数:构造函数_初始化_03,第3张

 关于类,我们通过下面这个代码来加深印象

c++类的默认成员函数:构造函数,c++类的默认成员函数:构造函数_c++_04,第4张

 

c++类的默认成员函数:构造函数,c++类的默认成员函数:构造函数_c++_05,第5张

这样子是直接将地址传过去,不会发生解引用

c++类的默认成员函数:构造函数,c++类的默认成员函数:构造函数_this指针_06,第6张

 关于this指针,我们作以下补充:

c++类的默认成员函数:构造函数,c++类的默认成员函数:构造函数_c++_07,第7张

 所以究竟什么是构造函数,它有什么作用???

c++类的默认成员函数:构造函数,c++类的默认成员函数:构造函数_this指针_08,第8张

本质上构造函数就是帮助我们进行初始化的工具 

c++类的默认成员函数:构造函数,c++类的默认成员函数:构造函数_初始化_09,第9张

我们来看我们之前写的日期类的构造函数应该如何书写

c++类的默认成员函数:构造函数,c++类的默认成员函数:构造函数_c++_10,第10张

 

我们也可以写成全缺省的形式

c++类的默认成员函数:构造函数,c++类的默认成员函数:构造函数_this指针_11,第11张

 

 对于实现栈来说,我们在使用的过程中难免会开辟空间,这样会导致异地扩容,所以为了减少这样的情况,我们可以使用构造函数进行初始化

c++类的默认成员函数:构造函数,c++类的默认成员函数:构造函数_开发语言_12,第12张

实现好的栈的构造函数 

        

c++类的默认成员函数:构造函数,c++类的默认成员函数:构造函数_构造函数_13,第13张

 这样子创建栈的时候我们就可以不用异地扩容了

对于构造函数我们要注意

内置类型就是程序中自带的变量,如int、char、double、指针

c++类的默认成员函数:构造函数,c++类的默认成员函数:构造函数_构造函数_14,第14张

c++类的默认成员函数:构造函数,c++类的默认成员函数:构造函数_开发语言_15,第15张

 下面我们来通过例子来展示构造函数的优势

在下面这个问题中,我们创建的队列会直接调用类中的两个栈的构造函数进行初始化,这样这个类的队列就不用另外写一个构造函数 

c++类的默认成员函数:构造函数,c++类的默认成员函数:构造函数_构造函数_16,第16张

c++类的默认成员函数:构造函数,c++类的默认成员函数:构造函数_c++_17,第17张

 

c++类的默认成员函数:构造函数,c++类的默认成员函数:构造函数_this指针_18,第18张

到这里我们就将构造函数大概解释清楚了,希望对大家有所帮助 

 


https://www.xamrdz.com/lan/5pj1924567.html

相关文章: