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;
}
相关推荐
不会算法的笨小孩12 分钟前
异常的使用以及会出现的问题
开发语言·c++·c++11·异常
LabVIEW开发33 分钟前
LabVIEW 连接板:28 个端子怎么排,优先级怎么定
java·算法·labview
严肃小白兔2 小时前
MATLAB 数值计算中的精度与误差问题:浮点运算、误差传播与数值稳定性
人工智能·算法·matlab
Hhy_11072 小时前
《C++深度解构06》手撕 string —— 从底层内存管理到深浅拷贝彻底吃透
c语言·开发语言·c++·学习·visual studio
starzy19902 小时前
深入理解Scala函数定义:从方法到函数的类型跨越
开发语言·scala
starzy19903 小时前
深入理解Scala递归函数:从栈溢出到尾调用优化
开发语言·scala
三*一3 小时前
Mapbox‑GL JS 多边形折点编辑工具:实现原理、功能拆解与踩坑总结
开发语言·javascript·ecmascript
青少儿编程课堂3 小时前
蓝桥杯青少组图形化省考报名倒计时·全国青少年信息素养大赛·电子学会图形化考级:校园黑白棋人机对战解析
c++·python·算法·bfs·信息学竞赛
YSL0701243 小时前
C++基础
开发语言·c++
若亦_3 小时前
Java中关于this的三种用法
java·开发语言·intellij-idea