您现在的位置是:首页 > 正文

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

2024-02-29 16:17:56阅读 0

前言

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

举例

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

代码

#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;
}

网站文章

  • lua 基础

    lua 基础

    lua 基础

    2024-02-29 16:17:51
  • 升级Android studio 3.3后出现的问题总结与解决

    升级Android studio 3.3后出现的问题总结与解决

    作为开发者保证开发环境的持续更新很重要,Android studio 已经到3.3.2了,最近有空从3.0升级了一下。结果出现了很多的问题。这里就简单总结一下自己遇到的问题和解决方法

    2024-02-29 16:17:23
  • vc++ MFC中字符串(CString)的比较

    vc++ MFC中字符串(CString)的比较

    VC++ MFC中两CString字符串不能直接进行比较,需要转换成char*类型来进行比较。 CString a; CString b; char *pa = (char*)((LPCTSTR)a); char *pb = (char*)((LPCTSTR)b); if(!strcmp(pa,pb)) { MessageBox(&quot;pa

    2024-02-29 16:17:15
  • Nutch的安装及配置

    1.下载地址:http://nutch.apache.org/downloads.html安装版本为2.42.设置nutch环境3.修改 $NUTCH_HOME/conf/nutch-site.xml...

    2024-02-29 16:17:09
  • 习题练习03

    最长公共前缀 编写一个函数来查找字符串数组中的最长公共前缀。 如果不存在公共前缀,返回空字符串 “”。 示例 1: 输入: [“flower”,“flow”,“flight”] 输出: “fl” 示例...

    2024-02-29 16:16:28
  • kafka扩容重平衡分区数据

    问题描述: kafka集群扩容进行重新分区后需要对分区重平衡,否则容易导致分区数据倾斜。 详细过程请参考原博客:https://www.cnblogs.com/qcloud1001/p/8330233.html 注意:重分区是对分区切片所在节点的重新分配,而不是数据由旧分区平衡到新分区 ...

    2024-02-29 16:16:01
  • U盘安装ubuntu 10.10,出现错误:Could not find kernel image 的解决办法

    U盘安装ubuntu 10.10,出现错误:Could not find kernel image 的解决办法 查了一下网上的办法,原来是syslinux配置文件的问题。 由于报这个错有多种可能的出错原因,我先说我这里的问题和解法,再摘录一下网络上其他朋友的问题和方法。 这个悲剧男的问题是,压根就没有isolinux.cfg,syslinux.cfg这样的文件,我到/sysl

    2024-02-29 16:15:54
  • 全网最佳设置leaflet 图层的方式

    全网最佳设置leaflet 图层的方式

    全网最佳设置leaflet 图层的方式 其他不同类型的图层都默认有个窗格pane并且还有值,z-index越大就越在上方

    2024-02-29 16:15:46
  • 优化Oracle数据库性能:合理设置数据库参数

    Oracle 数据库是一种功能强大的关系型数据库管理系统,但在处理大量数据和复杂查询时,性能问题可能会成为一个挑战。为了提高数据库的响应速度和效率,我们可以采取一系列的优化措施。 合理设置数据库参数是...

    2024-02-29 16:15:39
  • HTML 语法介绍 三步创建一个简单的网页页面

    HTML 语法介绍 三步创建一个简单的网页页面

    添加基本结构:输入英文‘!’点击‘!!!’ 则自动生成<!DOCTYPE html> # 文档类型说明<html lang="en"> # 页面根标签 语言默认为英文<head> <met...

    2024-02-29 16:15:11