继承与派生

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

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

继承与派生

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的内容不可以类外访问。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值