美文网首页
派生类继承基类构造函数

派生类继承基类构造函数

作者: ebayboy | 来源:发表于2019-09-30 09:27 被阅读0次

简单的派生类的构造函数

#include<iostream>

#include<string>

usingnamespacestd;

classStudent//声明基类

{

protected:

intnum;

stringname;

charsex;

public:

Student(intn,stringnam,chars)//定义基类(含参)构造函数

{

num=n;

name=nam;

sex=s;

}

};

classStudent1:publicStudent//声明公用派生类Student1

{

private:

intage;

stringaddr;

public:

Student1(intn,stringnam,chars,inta,stringad):Student(n,nam,s)

//定义派生类构造函数

{

age=a;

addr=ad;

}

voidshow()

{

cout<<"num:"<

cout<<"name:"<

cout<<"sex:"<

cout<<"age:"<

cout<<"address"<

}

~Student1 (){}

};

 派生类构造函数首行的写法

Student1(intn,stringnam,chars,inta,stringad):Student(n,nam,s)

派生类构造函数一般形式为

派生类构造函数名(总参数表):基类构造函数名(参数表)

        {派生类中新增数据成员初始化语句}

冒号“:”前面部分是派生类构造函数的主干,他和以前介绍过的构造函数的形式相同,但它的总参数表中包括基类构造函数所需的参数和对派生类新增的数据成员初始化所需的参数。冒号“:”后面部分是要调用的基类构造函数及其参数。

       从上面列出的派生类Student1构造函数首行中可以看到,派生类构造函数名(Student1)后面括号内的参数表中包括参数的类型和参数名(如int n) ,而基类构造函数名后面括号内的参数表列只有参数名而不包括参数类型(如n,num,s),因为在这里不是定义基类构造函数,而是调用基类构造函数,因此这些参数是实参而不是形参。它们可以是常量、全局变量和派生类构造参数总参数表中的参数。

       从上面列出的派生类Student1构造函数中可以看到:调用基类构造函数Student时给出3个参数(n,nam,s),这是和定义基类构造函数时指定的参数相匹配的。派生类构造函数Student1有5个参数,其中前3个是用来传递给基类构造函数,后面两个(a和ad)是用来对派生类所增加的数据成员初始化的。

2.派生类的析构函数

析构函数的作用是在对象撤销之前,进行必要的清理工作。

在派生时,派生类是不能继承基类的析构函数的,也需要通过派生类的析构函数去调用基类的析构函数。在派生类中可以根据需要定义自己的析构函数,用来地派生类中所增加的成员进行清理工作。基类的清理工作任然由基类的析构函数负责。

调用的顺序与构造函数正好相反:先执行派生类自己的析构函数,对派生类新增加的成员进行清理,然后调用子对象的析构函数,对子对象进行清理,最后调用基类的析构函数,对基类进行清理。

相关文章

  • C++学习笔记四

    类继承 1. 派生类 派生类构造 派生类构造函数必须使用基类构造函数 基类应在进入派生类构造函数之前被创建, C+...

  • 多重继承 和 虚基类

    多重继承下的派生类型 定义形式: class 派生类名:继承方式 基类名1,继承方式 基类名2{}; 构造函数 根...

  • C++第五篇继承与派生

    派生类将继承它所有基类中除构造函数和析构函数之外所有成员,因此派生类必须负责调用基类构造函数 对基类成员和成员对象...

  • 9月19日-4期C语言学习总结

    今天学习了派生类的构造及析构函数 其中 基类的构造函数不被继承,需要在派生类中自行声明。 派生类构造函数执行的一般...

  • C++ - 派生类的构造函数

    派生类的构造函数 派生类对象包含基类 对象 执行派生类构造函数之前,先执行基类的构造函数 派生类交代基类初始化,具...

  • 9月19日C++学习总结

    1.继承时的构造函数:(1)基类的构造函数不被继承,需要在派生类中自行声明。(2)声明构造函数时,只需要对本类中新...

  • 9.18学习总结

    今天学了继承和派生。 派生类:继承了基类的除了构造函数、析构函数、拷贝构造函数和赋值运算符重载函数之外的所有成员,...

  • C++继承和重载学习笔记

    1. 一个派生类继承了所有的基类方法,但下列情况除外: 基类的构造函数、析构函数和拷贝构造函数。 基类的重载运算符...

  • 孙世龙_9.18学习总结

    1.派生类继承了基类的除了构造函数、析构函数、拷贝构造函数和赋值运算符重载函数之外的所有成员,因此派生类对象由两部...

  • TypeScript基础总结-类

    1.继承:派生类中有构造函数时,必须执行super(),会调用基类的构造方法,而且得在构造函数访问this的属性之...

网友评论

      本文标题:派生类继承基类构造函数

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