C++学习Day06之继承基本语法

目录

  • 一、程序及输出
    • 1.1 没有继承
    • 1.2 使用继承
  • 二、分析与总结


一、程序及输出

想象在移动端看资讯,顶部、底部、左侧和中间内容,左侧滑动栏有新闻、体育…,点击不同的新闻,中间内容呈现不同主题的文字叙述,在代码里该如何设计?

1.1 没有继承

没有继承需要将不同的主题单独封装为一个类,但是它们都有相同的部分,如果主题非常多,那么这些相同的代码部分也就变得非常多,会很冗余。

class News
{
public:

	void header()
	{
		cout << "公共的头部" << endl;
	}
	void footer()
	{
		cout << "公共的底部" << endl;
	}
	void leftList()
	{
		cout << "公共的左侧列表" << endl;
	}

	void content()
	{
		cout << "新闻播报..." << endl;
	}
};


class Sport
{
public:

	void header()
	{
		cout << "公共的头部" << endl;
	}
	void footer()
	{
		cout << "公共的底部" << endl;
	}
	void leftList()
	{
		cout << "公共的左侧列表" << endl;
	}

	void content()
	{
		cout << "世界杯赛况..." << endl;
	}
};

1.2 使用继承

#include
using namespace std;

//利用继承模拟网页
//继承优点: 减少重复的代码,提高代码复用性
class BasePage
{
public:
	void header()
	{
		cout << "公共的头部" << endl;
	}
	void footer()
	{
		cout << "公共的底部" << endl;
	}
	void leftList()
	{
		cout << "公共的左侧列表" << endl;
	}
};
// 语法: class 子类 : 继承方式   父类
// News		子类    派生类
// BasePage 父类    基类
class News : public BasePage
{
public:
	void content()
	{
		cout << "新闻播报..." << endl;
	}
};

class Sport :public BasePage
{
public:
	void content()
	{
		cout << "世界杯..." << endl;
	}
};

void test01()
{
	News news;
	cout << "新闻页面内容如下:" << endl;
	news.header();
	news.footer();
	news.leftList();
	news.content();
	
	cout << "------------------------------" << endl;

	Sport sp;
	cout << "体育页面内容如下:" << endl;
	sp.header();
	sp.footer();
	sp.leftList();
	sp.content();
}

int main(){
	test01();
	system("pause");
	return EXIT_SUCCESS;
}

输出:
C++学习Day06之继承基本语法_第1张图片


二、分析与总结

在 C++ 中,继承是一种重要的面向对象编程概念,它允许一个类(称为派生类)继承另一个类(称为基类)的属性和行为

定义基类和派生类
基类(父类):定义类的基本属性和行为。
派生类(子类):从基类继承属性和行为,并可以添加新的属性和行为。
继承语法
class BaseClass {
// 基类定义
};
class DerivedClass : public BaseClass {
// 派生类定义
};
使用 : 后面跟着 public BaseClass 表示 DerivedClass 继承自 BaseClass,并且继承方式为公有继承。
访问控制
公有继承(public):基类的公有成员在派生类中保持公有性。
保护继承(protected):基类的公有和保护成员在派生类中变为保护成员。
私有继承(private):基类的公有和保护成员在派生类中变为私有成员。

你可能感兴趣的:(C++,c++,学习,开发语言)