练习 ~黑马程序员匠心之作-第三阶段C++核心编程-P127~P134-类和对象-继承

本文详细介绍了C++中的继承概念,包括基本语法、继承方式(公共继承、保护继承、私有继承)、对象模型、构造和析构顺序、同名成员处理、静态成员处理、多继承以及菱形继承问题的解决方法。通过实例分析,阐述了继承在减少重复代码和实现代码复用中的作用,并探讨了虚继承的底层实现。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

黑马程序员匠心之作|C++教程从0到1入门编程

继承是面向对象三大特性之一
有些类与类之间存在特殊关系,例如下图中
在这里插入图片描述

我们发现,定义这些类的时候,下级别的成员除了拥有上一级的共性,还有自己的特性
这个时候我们就可以考虑利用继承的技术,减少重复代码

1、基本语法

例如我们看到很多网站中,都有公共的头部,公共的底部,甚至公共的左侧列表,只有中心内容不同
接下来我们分别利用普通写法和继承写法来实现
普通实现

#include<iostream>
using namespace std;
//普通实现页面
//Java页面
class Java
{
public:
	void header()
	{
		cout << "首页、公开课、登录、注册……(公共头部)" << endl;
	}
	void footer()
	{
		cout << "帮助中心、交流合作、站内地图……(公共底部)" << endl;
	}
	void left()
	{
		cout << "Java、Python、C++……(公共分类列表)" << endl;
	}
	void content()
	{
		cout << "Java学科视频" << endl;
	}
};
//Python页面
class Python
{
public:
	void header()
	{
		cout << "首页、公开课、登录、注册……(公共头部)" << endl;
	}
	void footer()
	{
		cout << "帮助中心、交流合作、站内地图……(公共底部)" << endl;
	}
	void left()
	{
		cout << "Java、Python、C++……(公共分类列表)" << endl;
	}
	void content()
	{
		cout << "Python学科视频" << endl;
	}
};
//C++页面
class Cpp
{
public:
	void header()
	{
		cout << "首页、公开课、登录、注册……(公共头部)" << endl;
	}
	void footer()
	{
		cout << "帮助中心、交流合作、站内地图……(公共底部)" << endl;
	}
	void left()
	{
		cout << "Java、Python、C++……(公共分类列表)" << endl;
	}
	void content()
	{
		cout << "C++学科视频" << endl;
	}
};
void test01()
{
	cout << "Java下载视频页面如下:" << endl;
	Java java;
	java.header();
	java.footer();
	java.left();
	java.content();
	cout << "------------------------------------------"<<endl;

    cout << "Python下载视频页面如下:" << endl;
	Python python;
	python.header();
	python.footer();
	python.left();
	python.content();
	cout << "------------------------------------------" << endl;

	cout << "C++下载视频页面如下:" << endl;
	Cpp cpp;
	cpp.header();
	cpp.footer();
	cpp.left();
	cpp.content();
	cout << "------------------------------------------" << endl;
}
int main()
{
	test01();

	system("pause");
	return 0;
}

在这里插入图片描述
继承实现

#include<iostream>
using namespace std;

//继承实现页面
//公共页面类
class BasePage
{
public:
	void header()
	{
		cout << "首页、公开课、登录、注册……(公共头部)" << endl;
	}
	void footer()
	{
		cout << "帮助中心、交流合作、站内地图……(公共底部)" << endl;
	}
	void left()
	{
		cout << "Java、Python、C++……(公共分类列表)" << endl;
	}

};
//Java页面
class Java :public BasePage
{
public:
	void content()
		{
			cout << "Java学科视频" << endl;
		}
};
//Python页面
class Python :public BasePage
{
public:
	void content()
	{
		
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值