0
点赞
收藏
分享

微信扫一扫

派生类的构造函数


前言:
  前文我们谈到过构造函数《​C++的构造函数》,现在我们主要讨论构造函数在派生类里的运用。

1.必备知识/概念

  1. 继承与派生
  2. 派生类构造函数的定义与声明
  3. 派生类构造函数的功能

2.继承与派生

    ​​继承​​​与​​派生​​​其实是指两种关系!
这两种关系就像家庭族谱里边的长辈与晚辈的某种联系,我们可以这样理解:你和你的父亲肯定在性格或者为人处世等方面有诸多相似之处,我们说那是你遗传了你父亲的某些特质。也就是说你​​​继承​​​了你父亲的这些特点,而反过来,我们说是你父亲把这些特质​​派生​​给了你。

派生类的构造函数_数据


我们现在把这个关系重新命名,父亲=​​基类​​​;儿子=​​派生类​​​。它们之间的箭头是由​​派生​​​指向​​基类​​。

总结成一句话:

      父亲​​派生​​​给儿子,儿子​​继承​​父亲。

3.派生类构造函数的定义与声明

   我们首先定义一个基类​​Student​​​,在定义一个派生类​​Student1​​​,通过派生类去访问基类​​Student​​​的成员数据,主函数调用派生类的成员函数​​show​​​进行输出。
   以上是我们要写的一个业务逻辑,我们在主函数建立对象的时候直接给出参数,进行输出。

   1.首先定义基类​​Student​​,也就是我们说的父亲。

class Student
{
public:
Student(int n, string nam, char s) :num(n), name(nam), sex(s) {};//定义基类构造函数

~Student()//定义基类的析构函数
{

}
protected:
int num;
string name;
char sex;
};

基类的构造函数进行数据初始化,我们用的是初始化表,这是我个人比较喜欢用的,因为比较方便。

Student(int n, string nam, char s) :num(n), name(nam), sex(s) {};

2.定义一个派生类​​Student1​​,去访问基类的数据成员

class Student1:public Student
{
public:
Student1(int n, string nam, char s, int a, string ad) :Student(n, nam, s), age(a), addr(ad) {}//定义派生类构造函数
void show()
{
cout << "num:" << num << endl;
cout << "name:"<<name << endl;
cout << "sex:" << sex << endl;
cout << "age:" << age << endl;
cout << "addr:" << addr << endl;
}
~Student1() {}//派生类析构函数
private:
int age;
string addr;
};

在派生类里我们需要知道下面几点:

  1. 继承方式的定义,这里我们定义的公用继承。
  2. 派生类的公用成员函数​​show​​​能够访问基类的保护​​protected​​数据成员
  3. 派生类的作用就是为基类补充数据成员​​age​​​和​​addr​​。

4.主函数的写法

int main()
{
Student1 stud1{ 100010,"wang",'f',19,"115 Beijing Road,Shanghai" };
Student1 stud2{ 100011,"Zhang",'m',21,"213 Shanghai Road,Beijing" };
stud1.show();
stud2.show();
return 0;
}

建立对象​​stud1​​​和​​stud2​​​,带着参数进行调用函数​​show​​。

5.派生类构造函数的功能

数据初始化!


举报

相关推荐

0 条评论