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

    文章

    4327

    浏览量

    62574
  • C++
    C++
    +关注

    关注

    22

    文章

    2108

    浏览量

    73623
收藏 人收藏

    评论

    相关推荐

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

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

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

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

    如何把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为类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

    C++的123个经典笔试题目合集免费下载

    delete 会调用对象的函数 , 和 new 对应 free 只会释放内存, new 调用构造函数。 malloc 与 free 是 C++
    发表于 09-06 17:26 1次下载
    <b class='flag-5'>C++</b>的123个经典笔试题目合集免费下载

    Linux共享库的构造函数函数

    共享库有类似C++类构造和函数函数,当动态库加载和卸载的时候,函数会被分别执行。一个
    的头像 发表于 06-22 09:18 2322次阅读
    Linux共享库的构造<b class='flag-5'>函数</b>和<b class='flag-5'>析</b><b class='flag-5'>构</b><b class='flag-5'>函数</b>

    C++之继承中构造和学习的总结

    在我们前面学习过类中的构造函数,以及函数,那么自然而然,在继承关系中,必然是存在着和构造
    的头像 发表于 12-24 16:10 970次阅读

    c++学习之函数和const总结

    本篇文章介绍对象顺序的分类。
    的头像 发表于 12-24 17:13 458次阅读

    深度解析C++中的虚函数

    函数作为C++的重要特性,让人又爱又怕,爱它功能强大,但又怕驾驭不好,让它反咬一口,今天我们用CPU的角度,撕掉语法的伪装,重新认识一下虚函数。 虚
    的头像 发表于 02-15 11:14 828次阅读
    深度解析<b class='flag-5'>C++</b>中的虚<b class='flag-5'>函数</b>

    浅析C++执行构造函数编程实例

    C++保证在你调用delete时,先自动调用函数(而我们安排在这个函数里面删除它的法杖、法袍等对象),再删除对象占用的内存。
    发表于 03-03 15:44 284次阅读

    同样是函数,在CC++中有什么区别

    同样是函数,在 CC++ 中有什么区别? 第一个返回值。 C语言的函数可以不写返回值类型,编译器会默认为返回 int。 但是
    的头像 发表于 11-29 10:25 274次阅读