构造函数与析构函数

一、构造函数

       在类中数据成员一般 多为私有数据成员,要对他们进行初始化,必须要用一个公有函数来进行,并且这个函数在类中仅且只能被调动一次(构造一个对象时),称为构造函数。

        对私有数据访问,必须通过公有方法

构造函数特点:

1.与类名一致

2. 函数无返回值,是没有返回值并不是void,即什么都不能写,也不可写void,时间是构造函数是有返回值的,返回的就是构造函数所创建的对象。

3.在某个对象从生到死只能被调动一次。

4.构造函数可以重载,由不同的参数列表区分,调动时候按照重载规则执行。

5.如果缺省构造函数,系统会给一个默认构造函数,很可惜他不什么都不做,作用只是构造出对象。

6.如果写了构造函数,系统就不会自作多情在为你创建默认的构造函数

7.缺省的构造函数只能同时出现一个(假如构造函数中的参数列表都有默认值,我们就认为他是缺省的构造函数),不然的话就会出现二义性,编译不能通过

 

有参数列表的构造函数都有默认值的话,该函数就是默认有参构造函数,在类中只能有一个默认构造函数

比如你定义了一个class A类,里面没有写任何构造函数,则系统会自动给你生成一个默认构造函数
该函数是A(),该默认构造函数是没有参数的,所以他同时是一个无参构造函数。
无参构造函数就是函数没有参数,说白了就是函数的括号里没有任何东东。

系统默认构造函数 A(){}

无参构造函数 = 无参默认构造函数 A(){…}

有参构造函数A(int a){}

有参默认构造函数A(int a = 0){…}

无参构造对象时可以调动有参默认函数,无参构造对象时候只调动默认构造函数(一个类只能有一个默认构造函数可以是系统的、或是无参的、或者是有参的),但是有参构造对象时候就不能调动无参构造函数构造对象,只能通过有参构造函数(可以不匹配,但构造对象是的参数个数要小于构造函数的参数个数),或者有参默认函数(个数也要小于构造函数参数个数)

8.对象的数据成员为公有的,可以成员访问符访问。

二、析构函数

       当定义一个对象时候C++会自动调用构造函数建立该对象并进行初始化,当对象生命周期结束的时候,C++也会调动一个注销函数,对其对象进行善后工作,这个特殊的成员函数叫做析构函数

析构函数特点:

1.与类名相同 ,在前面加上~ 例如 ~Test();

2.析构函数无返回值,并且无参数列表,就一种写法。

3.一个类只能有一个析构函数,析构函数也可以缺省,缺省的话系统会自动为你创建一个析构函数。

3.对对象注销,系统自动调动析构函数.

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值