栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > C/C++/C#

C++面向对象程序设计(用通俗易懂的方式理解它)

C/C++/C# 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

C++面向对象程序设计(用通俗易懂的方式理解它)

第三章 析构函数

第一节 对象数组

第二节 对象的赋值与复制

第三节 析构函数

第一节 对象数组
  1. 对象数组指的是每一个数组元素都是对象的一个数组。
Student stud[30];

        注意:在建立数组时 ,需要调用构造函数。有几个构造函数就需要调用几次构造函数。

        可以在定义数组时对其提供实参以实现初始化。

  • 当构造函数只有一个参数时,在定义数组时可以在等号后面的花括号里提供实参。
    Student stud[2]={90,95};

    将两个实参分别传递给两个数组元素的构造函数。

  • 构造函数有多个参数时,在花括号中分别写出构造函数名并在括号内指定实参。
Student stud[3]={                    //定义对象数组
    student (100,小王),            //调用第一个元素的构造函数,并向它提供两个实参
    student (101,小红),            //调用第二个元素的构造函数,并向他提供两个实参
    student (102,小李),           //调用第三个元素的构造函数,并向他提供两个实参
}
  • 编译系统只为每个对象元素的构造函数传递一个实参,所以在其定义数组时提供的实参个数不能超过数组元素个数。
第二节 对象的赋值与复制
  1. 对象的赋值:当一个类定义了两个或多个对象时,这些同类的对象之间可以相互赋值,即一个对象的值可以赋给另一个同类的对象。
    对象名 1=对象名 2;
  • 代码举例:
#include
using namespace std;
class Box
{
    public:
    Box(int l=10,int w=15,int h=20):length(l),width(w),height(h){}           //声明有默认参数的构造函数,用参数初始化对数据成员初始化
    int volume();
    private:
    int length;
    int width;
    int height;
    
};
int Box::volume()
{
    return(length*width*height);
}
int main()
{
    Box box1(10,11,12),box2;
    cout<<"The volume of box1 is "< 

        3.对象的复制 

        对象的复制就是用一个已有的对象快速地复制出多个完全相同的对象。

形式1:

类名 对象2(对象1);

形式2:

类名 对象名 1=对象名 2;

注意:对象的复制在建立对象时需要调用复制构造函数,它只有一个参数,这个参数只能是本类的对象,不可以是其他类的对象,而且采用对象的引用形式。复制构造函数的作用就是将实参对象的各成员值一一赋给新的对象中对应的成员。

Box::Box(const Box &b)
{
    height=b.height;
    width=b.width;
    length=b.length;
}
第三节 析构函数
  1. 析构函数也是类的成员函数,它的名字是在类名前加字符“~”。析构函数没有参数和返回值,并且不能被重载,所以一个类中只能定义一个析构函数并且应为public。
  2. 当一个类的对象运行失效时,就要调用该对象所属类的析构函数。
  3. 析构函数的作用是释放一个对象占用的内存。
  4. 用new运算符动态地创建一个对象,当用delete运算符释放它时,自动调用析构函数。
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/384318.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号