前言: 前文我们谈到过构造函数《C++的构造函数》,现在我们主要讨论构造函数在派生类里的运用。
继承与派生其实是指两种关系! 这两种关系就像家庭族谱里边的长辈与晚辈的某种联系,我们可以这样理解:你和你的父亲肯定在性格或者为人处世等方面有诸多相似之处,我们说那是你遗传了你父亲的某些特质。也就是说你继承了你父亲的这些特点,而反过来,我们说是你父亲把这些特质派生给了你。
我们现在把这个关系重新命名,父亲=基类;儿子=派生类。它们之间的箭头是由派生指向基类。 总结成一句话: 父亲派生给儿子,儿子继承父亲。
我们首先定义一个基类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; };在派生类里我们需要知道下面几点:
继承方式的定义,这里我们定义的公用继承。派生类的公用成员函数show能够访问基类的保护protected数据成员派生类的作用就是为基类补充数据成员age和addr。建立对象stud1和stud2,带着参数进行调用函数show。
数据初始化!