(C++基础)浅谈继承与派生

来源:互联网 发布:java表格代码怎么写 编辑:程序博客网 时间:2024/05/17 09:15

C++是门面向对象的编程语言,四个主要特点:抽象、封装、继承、派生。

C++中可重用性是通过“继承”这一机制来实现的,因此继承是C++的一个重要组成部分。

一  什么是继承?

         比如一个类里面有学生的基本信息,学号,姓名,性别等,学校的某个部门需要用到学号,姓名,性别以外还需要 用到年龄地址等等,如果重新声明一个类重新定义这些东西会很繁琐,很有可能使你搞混了谁是谁,此时就可以用到继承了,可以继承之前类的信息,并且可以在新的类中声明新的变量方法等。继承哪个类哪个类就叫“基类”,新的类就是“派生”类。

二  派生类的声明方式

class Student{int num;string name;char sex;};class Student1 :public Student //声明基类是谁{public:void display()            //派生类中新增加的函数{}}

注:派生类继承了基类除了构造函数与析构函数之外的所有成员!

三  派生类的访问属性

在基类的访问属性继承方式在派生类中的访问属性private public不可访问privateprivate不可访问private protected不可访问publicpublicpublicpublicprivateprivatepublic protectedprotectedprotectedpublicprotectedprotectedprivateprivateprotectedprotectedprotected


四   派生类的构造函数与析构函数

用户在定义类的时候可以不声明但是每个类都有个默认的构造函数,空函数,没啥用。如果想对类中的数据成员初始化就需要自己定义构造函数。

4.1简单派生类的构造函数

class Student{public:Student(int n, string nam, char s){num = n;name = nam;sex = s;}int num;string name;char sex;};class Student2:public Student{public:Student(int n, string nam, char s, int a, string ad) :Student(n, nam, s)//定义派生类构造函数{age = a;                     //在函数体内只对派生类新增的数据成员初始化   注:因为这里是调用基类的构造函数addr = ad;                   //所以(n,nam,s)没有类型,因为他们是实参,不是形参}private:int age;string addr;}

4.2    有子对象的派生类构造函数

派生类中需要一个班长,班长的信息和他们一样,属性和他们一样,则在派生类中定义一个对象,此时要在声明派生类构造函数的同时对班长初始化,如下:
class Student{public:Student(int n, string nam, char s){num = n;name = nam;sex = s;}int num;string name;char sex;};class Student2:public Student{public:Student(int n, string nam char s,int n1,string nam1,char s1, int a, string ad) :Student(n, nam, s),duixiang(n1,nam1,s1)/{age = a;//这个对象的初始化就如此,不知道该怎么解释,自己看吧。。。                                                           addr = ad;}private:int age;string addr;student duixiang;}

五  析构函数 

 因为派生类不能继承基类的析构函数,所以需要派生类的析构函数去调用基类的析构函数。在对派生类清理的时候会自动调用基类的构造函数,对基类和子对象进行清理。
清理顺序:
       先执行派生类的的析构函数,对派生类增加的成员进行清理,再进行子对象的析构函数,最后调用基类的析构函数。
注意:
      多重继承的时候,声明方式,构造函数的形式与单继承一样,就是加个:Student(n,a,s)。特殊情况特殊处理。

                                                                                                                                                                                                         2017年3月16日20:54:11


0 0
原创粉丝点击