c++接口的使用场景及举例

前言

比如一些平等的类,有一些类需要实现一些方法,有一些类不需要,这个时候就不能将这些平等的类继承一个父类,而是将需要实现的方法写到接口类中,让平等的类中需要实现这些方法的类继承接口类,重写接口方法。

举例

假如都是人,中国人和弗冉斯人会驾车,驾驶他们自己国家的车,而阿末瑞卡人不需要驾车,他们国家的人直接驾驶飞机。那么这个时候就不能将中国人、弗冉斯人、阿末瑞卡人都去继承人这个类,然后在人的类中创建虚方法让子类去实现。而是写一个驾驶车的接口,让中国人和弗冉斯人去继承,阿末瑞卡人不继承即可。

代码

cpp 复制代码
#include<iostream>

class IDriveCar { // 接口类,必须至少有一个纯虚函数
public:
	virtual void drive_car() = 0; // 纯虚函数
};

class Chinese: public IDriveCar {
public:
	void drive_car() override // 子类必须实现所有纯虚函数
	{
		std::cout << "drive chinese car" << std::endl;
	}
};

class American {
public:
	void do_something()
	{
		std::cout << "do other things" << std::endl;
	}
};

class FrenchMan: public IDriveCar {
public:
	void drive_car() override {
		std::cout << "drive french car" << std::endl;
	}
};


int main()
{
	Chinese c;
	c.drive_car();

	FrenchMan f;
	f.drive_car();

	return 0;
}
相关推荐
paopaokaka_luck4 分钟前
基于Spring Boot+Vue的多媒体素材管理系统的设计与实现
java·数据库·vue.js·spring boot·后端·算法
奋飞安全10 分钟前
初试js反混淆
开发语言·javascript·ecmascript
guoruijun_2012_410 分钟前
fastadmin多个表crud连表操作步骤
android·java·开发语言
浪里个浪的102413 分钟前
【C语言】计算3x3矩阵每行的最大值并存入第四列
c语言·开发语言·矩阵
视觉小萌新20 分钟前
VScode+opencv——关于opencv多张图片拼接成一张图片的算法
vscode·opencv·算法
@东辰20 分钟前
【golang-技巧】-自定义k8s-operator-by kubebuilder
开发语言·golang·kubernetes
乐悠小码27 分钟前
数据结构------队列(Java语言描述)
java·开发语言·数据结构·链表·队列
史努比.28 分钟前
Pod控制器
java·开发语言
2的n次方_31 分钟前
二维费用背包问题
java·算法·动态规划
敲敲敲-敲代码37 分钟前
游戏设计:推箱子【easyx图形界面/c语言】
c语言·开发语言·游戏