美文网首页
网易云课堂(Boolan)C++ 第二周笔记

网易云课堂(Boolan)C++ 第二周笔记

作者: 淡淡的悲哀 | 来源:发表于2018-01-15 05:44 被阅读0次

    1、关键字class与struct

        使用class与struct定义类的区别在于默认访问权限,class默认private,struct默认public。

    定义在public之后的成员整个程序内可被访问。

    定义在private之后的成员可以被类的成员函数访问,但不能被使用该类的代码访问(如需访问需定义友元)。

    封装的益处:确保用户代码不会无意间破坏封装对象的状态,被封装的类的具体实现细节可以随时改变,而无需调整用户级别的代码。

    2、拷贝构造、拷贝赋值、析构函数

        如果一个构造函数的第一个参数是自身类型的引用,且任何额外参数都有默认值,则此构造函数是拷贝构造函数。拷贝赋值与重载运算符类似,拷贝构造和拷贝赋值如果类未定义编译器会为它自动合成一个。

    析构函数执行与构造函数相反的操作,是类的一个成员函数,名字由波浪号接类名构成。

    在一个构造函数中,成员的初始化是在函数体执行之前完成的,且按照它们在类中出现的顺序进行初始化。在一个析构函数中,首先执行函数体,然后销毁成员,成员按初始化顺序的逆序销毁。

    3、什么时候会调用析构函数

        无论何时一个对象被销毁,就会自动调用其析构函数:

    变量在离开其作用域时被销毁。

    当一个对象被销毁时,其成员被销毁。

    容器(无论是标准库容器还是数组)被销毁时,其元素被销毁。

    对于动态分配的对象,当对指向它的指针应用delete运算符时被销毁。

    对于临时对象,当创建它的完整表达式结束时被销毁。

    相关文章

      网友评论

          本文标题:网易云课堂(Boolan)C++ 第二周笔记

          本文链接:https://www.haomeiwen.com/subject/tifroxtx.html