0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

C++:详谈析构函数的特性和使用

如意 来源:CSDN 作者:cherrydreamsover 2020-06-29 11:53 次阅读

析构函数

1.概念

与构造函数功能相反,在对象被销毁时,由编译器自动调用,完成类的一些资源清理和汕尾工作。

C++:详谈析构函数的特性和使用

2.特性

析构函数在类名(即构造函数名)加上字符~。

析构函数无参数无返回值。

一个类有且只有一个析构函数。若未显示定义,系统会自动生成缺省的析构函数。

对象生命周期结束时,C++编译系统系统自动调用析构函数。

注意析构函数体内并不是删除对象,而是做一些清理工作。

四、赋值运算符重载

1.概念

对于类类型的对象我们需要对‘=’重载,以完成类类型对象之间的赋值。

2.static成员

声明为static的类成员(成员数据或成员函数)称为类的静态成员。

特性:

(1)静态成员为所有类对象所共享,不属于某个具体的实例。

(2)类静态成员即可用类名::静态成员或者对象。静态成员来访问。

(3)类静态成员变量必须在类外定义,定义时不添加static关键字。

(4)类的静态成员函数没有默认的this指针,因此在它里面不能使用任何非静态成员。

(5)静态成员和类的普通成员一样,也有public、protected、private3种访问级别,也可以具有返回值,const修饰符等参数。

注意:

(1)静态成员函数不可以调用非静态成员函数;

(2)非静态的成员函数可以调用静态的成员函数。

3.const修饰类成员

使用场景:

(1)const修饰形参,一般和引用同时使用;

(2)const修饰返回值;

(3)const修饰类数据成员,必须在构造函数的初始化列表中初始化;

(4)const修饰类成员函数,实际修饰隐含的this,表示在类中不可以对类的任何成员进行修改;

(5)在const修饰的成员函数中要对类的某个数据成员进行修改,该数据成员定义声明是必须加mutable关键字。

C++:详谈析构函数的特性和使用

说明:

const对象不可以调用非const成员函数,非const成员函数可以调用const成员函数

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 函数
    +关注

    关注

    3

    文章

    3868

    浏览量

    61308
  • C++
    C++
    +关注

    关注

    21

    文章

    2066

    浏览量

    72900
收藏 人收藏

    评论

    相关推荐

    C++小白自学基础教程之为什么需要构造和函数06

    C++
    电子学习
    发布于 :2023年01月12日 22:25:19

    C++零基础教程之C++函数,轻松上手C++函数

    编程语言C++语言
    电子学习
    发布于 :2023年01月14日 11:39:09

    C++零基础教程之构造顺序,轻松上手C++构造和顺序

    编程语言C++语言
    电子学习
    发布于 :2023年01月14日 12:30:25

    C++零基础教程之虚函数,轻松上手C++继承

    编程语言C++语言
    电子学习
    发布于 :2023年01月14日 13:43:22

    高质量c++ c编程指南

    ......................................................................................................... 56第8 章 C++函数的高级
    发表于 06-27 10:22

    中科院C++课件及范实例代码(研究生应,例程特经典)

    对象与类,构造函数函数,堆与拷贝构造函数,静态数据成员与静态成员函数,继承,多态与虚
    发表于 10-07 10:06

    C++标准编程:虚函数与内联

      曾经在讨论C++的时候,经常会问到:“虚函数能被声明为内联吗?”现在,我们几乎听不到这个问题了。现在听到的是:“你不应该使print成为内联的。声明一个虚函数为内联是错误的!”  这种说法的两个
    发表于 05-03 11:53

    请问TMS320DM6437支持c++的哪部分?

    两个支持吗?1.支不支持new/delete动态内存分配2.函数的重载,构造函数函数或者有没有关于dsp支持
    发表于 07-27 08:02

    如何把C++的源程序改写成C语言

    说一无所知对大家有好处,只是想说这种方法的与程序逻辑本身的无关性。下面对C++的一些特性,以及如何在c里实现或者替代,作一些初步的探讨:说明:函数Ixx为类xx的构造
    发表于 07-08 20:51

    如何把C++的源程序改写成C语言

    说一无所知对大家有好处,只是想说这种方法的与程序逻辑本身的无关性。下面对C++的一些特性,以及如何在c里实现或者替代,作一些初步的探讨:说明:函数Ixx为类xx的构造
    发表于 07-11 09:34

    如何把C++的源程序改写成C语言

    所要实现的功能还一无所知。倒不是说一无所知对大家有好处,只是想说这种方法的与程序逻辑本身的无关性。下面对C++的一些特性,以及如何在c里实现或者替代,作一些初步的探讨:说明:函数Ixx
    发表于 06-30 10:54

    如何把C++的源程序改写成C语言

    方法的与程序逻辑本身的无关性。下面对C++的一些特性,以及如何在c里实现或者替代,作一些初步的探讨:说明:函数Ixx为类xx的构造函数的实现
    发表于 07-05 14:59

    如何把C++的源程序改写成C语言

    说一无所知对大家有好处,只是想说这种方法的与程序逻辑本身的无关性。下面对C++的一些特性,以及如何在c里实现或者替代,作一些初步的探讨:说明:函数Ixx为类xx的构造
    发表于 07-07 09:31

    如何把C++的源程序改写成C语言

    说一无所知对大家有好处,只是想说这种方法的与程序逻辑本身的无关性。下面对C++的一些特性,以及如何在c里实现或者替代,作一些初步的探讨:说明:函数Ixx为类xx的构造
    发表于 11-17 10:16

    C++中的四种类型转换分别是哪些?C++函数的作用是什么

    C++中的四种类型转换分别是哪些?C++函数的作用是什么?在C语言中关键字static主要
    发表于 12-24 06:57