首页 > 编程语言 >适配器模式c++

适配器模式c++

时间:2022-11-24 21:33:54浏览次数:49  
标签:Adapter 适配器 c++ virtual miao public 模式 void

[实验任务一]:双向适配器

实现一个双向适配器,使得猫可以学狗叫,狗可以学猫抓老鼠。

 

 

#include<iostream>
using namespace std;
class Cat{
public:
    virtual void miao()=0;
    virtual void catchs()=0;
};
class Dog{
public:
    virtual void wang()=0;
    virtual void run()=0;
};
class RealCat:public Cat{
public:
    void miao(){
        cout<<"喵喵叫!"<<endl;
    }
    void catchs(){
        cout<<"抓老鼠!"<<endl;
    }
};
class RealDog:public Dog{
public:
    void wang(){
        cout<<"汪汪叫!"<<endl;
    }
    void run(){
        cout<<"跑跑跑!"<<endl;
    }
};
class Adapter:public Cat,public Dog{
private:
    static Cat *cat;
    static Dog *dog;
public:
    void setCat(Cat *c){
        cat=c;
    }
    void setDog(Dog *d){
        dog=d;
    }
    void wang(){
    }
    void catchs(){
    }
    void run(){
        cout<<"小狗学小猫!"<<endl;
        cat->catchs();
    }
    void miao(){
        cout<<"小猫学小狗:"<<endl;
        dog->wang();
    }
};
Cat* Adapter::cat=new RealCat();
Dog* Adapter::dog=new RealDog();
int main(){
    Adapter adapter;
    adapter.run();
    adapter.miao();
    return 0;
}

 

标签:Adapter,适配器,c++,virtual,miao,public,模式,void
From: https://www.cnblogs.com/rongzhang/p/16923528.html

相关文章

  • Java 设计模式:工厂模式
    目录工厂模式(FactoryPattern)实现简单工厂模式示例工厂方法模式示例抽象工厂模式示例参考工厂模式(FactoryPattern)所属:创建型模式,适用时机:我们明确地计划不同条件下创建......
  • 注解与代理模式
    注解与代理模式相关介绍Annotation就是嵌入在代码中的标记,补充代码功能,可以修饰包,类,方法,变量实际开发中,基于注解可以替换配置文件框架=注解+反射+设计模式的集合......
  • Glob模式匹配
    前言在本文中我将以glob是什么,glob的语法,glob与正则表达式的差异等几个方面对glob模式匹配进行一个梳理,希望也能对读者起到一定的帮助。glob是什么glob是用于文件名的......
  • Spring Boot 整合 RabbitMQ 之 Fanout Exchange模式 (三)
    摘要:那前面已经介绍过了Direct模式(一)Topic转发模式(二),这次介绍下FanoutExchange形式又叫广播形式,因此我们发送到路由器的消息会使得绑定到该路由器的每一个Queue接收......
  • Spring Boot 整合 RabbitMQ 之 Topic转发模式 (二)
    摘要:上一篇介绍了Direct模式的消息发生机制,这篇介绍下Topic转发模式的消息发生机制。一:首先我们看发送端,我们需要配置队列Queue,再配置交换机(Exchange),再把队列按照相应......
  • Java之微信支付(扫码支付模式二)案例实战-之支付完成后页面跳转方案
    摘要:做过微信扫码支付的同学都知道,微信扫码支付完成后,要跳转到指定的页面就比较麻烦了,这里我提供一种比较可行的方案,也许还有其他更多的方案,但是我这里分享下我们当时是怎么......
  • C++ 继承和派生的应用 1.定义一个类 Book, 用来描述新书, 具有以下功能:(1) 查看当前
    Book.h:#pragmaonce#include<string>usingnamespacestd;classBook{public:Book(conststring&bookname,conststring&isbn,doubleprice);doubl......
  • 设计模式——2、原型模式
     在有些系统中,存在大量相同或相似对象的创建问题,如果用传统的构造函数来创建对象,会比较复杂且耗时耗资源,用原型模式生成对象就很高效,就像孙悟空拔下猴毛轻轻一吹就变出很多......
  • java23种设计模式概述总结
    软件设计模式的意义:它是解决特定问题的一系列套路,是前辈们的代码设计经验的总结,具有一定的普遍性,可以反复使用。其目的是为了提高代码的可重用性、代码的可读性和代码的可靠......
  • 设计模式——1、单例模式
    在有些系统中,为了节省内存资源、保证数据内容的一致性,对某些类要求只能创建一个实例,这就是所谓的单例模式。单例模式的定义与特点单例(Singleton)模式的定义:指一个类只有一个......