继承与派生

来源:互联网 发布:代码编程制作 编辑:程序博客网 时间:2024/06/10 14:09

这篇文章是我自己对于继承和派生内容学习的理解和总结。
在我看来继承与派生是对于已写代码最大的利用,和对减少新代码的工作量的最好方法之一。

在如今的代码编写中,很多时候我们都会面对一些重复的编写,比如我们写一个算法的代码,刚开始他可能会存在一定的不足或漏洞,我们会去不断的完善和修改他,在这个过程中,我们就会编写新的代码去代替他,但是他原本的作用肯定还是存在的,如果我们在从头去编写,就会加大自己的工作量,对于我们而言是非常不划算的,而针对此问题,就显现出了继承的重要性。

继承与派生

class Student{public:void display(){cout << "num :" << num <<endl;cout << "name:" << name << endl;cout << "addr:" << addr <<endl;}private:int num;char name[20];char addr[20];};
关于继承我先举一个例子,如上代码是我编写的一个学生类,他有学号,姓名,和地址三个变量,但是随着发展,可能对于学生的信息会需要的更多,比如我们又加了一个号码。代码就会变成如下格式:

class Student2{public:void display(){cout << "num :" << num << endl;cout << "name:" << name << endl;cout << "addr:" << addr << endl;
                cout << "phone:" << phone << endl;
}private:int num;char name[20];char addr[20];char phone[12];};

如上,对于两次代码,基本是相同的,我只增加了一个新的变量而已,但是尽管改变不大,我却需要将代码整个重新写一遍。如此对于我们的工作量就十分大,而派生的用处就体现出来了。如果使用继承的话代码就会在第一个代码的基础上变成:

class Student3:public Student{public:void display_3(){cout << "phone:" << phone << endl;}private:char phone[12];};
这样就会节省大量的时间和工作量,对于如上代码,我们将Student类称为父类或者基类,此类为被继承的类,而Student3称为子类或者派生类,又父类派生得来,子类拥有父类的一切属性。

由上述代码也能看出继承格式为class 派生类名:继承方式 基类名。


由上图可以看出b的确拥有了d的display函数,因为变量我们设置的是private所以在类外不能访问。

通过上述代码,我们就对继承和派生有了初步的认识,然而继承也分为多种继承方式。

分别为public,protected和private。

对于public继承,父类函数数据在子类中存在方式不变。

对于protected继承,父类函数public的函数或者变量变为protected,protected和private不变。

对于private继承,所有内容均变为private。

对于这些继承方式,最主要需要记住private的内容不可以类外访问。

原创粉丝点击