C++模板方法

news/2024/7/8 3:57:57 标签: c++, 模板方法

设计模式:模板方法

#include <iostream>

class Abstract_Sport {
public:
    void template_method() {
        start();
        end();
        start();
        end();
    }
    virtual void start() = 0;
    virtual void end() = 0;
};

class Concrete_BasketBall : public Abstract_Sport {
    void start() {
        std::cout << "BasketBall start" << std::endl;
    }
    void end() {
        std::cout << "BasketBall end" << std::endl;
    }
};

class Concrete_FootBall : public Abstract_Sport {
    void start() {
        std::cout << "FootBall start" << std::endl;
    }
    void end() {
        std::cout << "FootBall end" << std::endl;
    }
};

int main(int argc, char* argv[]) {
    std::cout << "---------" << std::endl;
    Abstract_Sport* p = new Concrete_BasketBall();
    p->template_method();
    p->start();
    p->end();
    delete p;
    p = NULL;

    std::cout << "---------" << std::endl;
    p = new Concrete_FootBall();
    p->template_method();
    p->start();
    p->end();
    delete p;
    p = NULL;

    return 0;
}

输出:

BasketBall start
BasketBall end
BasketBall start
BasketBall end
BasketBall start
BasketBall end

FootBall start
FootBall end
FootBall start
FootBall end
FootBall start
FootBall end


http://www.niftyadmin.cn/n/174800.html

相关文章

【BootstrapVue】滑动监听Scrollspy实现餐厅餐品展示

一、介绍效果图&#xff1a;介绍&#xff1a;根据滚动位置自动更新引导导航或列表组组件&#xff0c;以指示视口中当前处于活动状态的链接。作用&#xff1a;可以用于餐厅点菜的菜品展示页侧边栏、博客系统的侧边栏等&#xff0c;实现流畅的垂直滚动监听官方网址&#xff1a;Sc…

CentOS 8 (TencentOS3.1)安装xtrabackup 2.4

去官网下载rpm包 https://downloads.percona.com/downloads/Percona-XtraBackup-2.4/Percona-XtraBackup-2.4.27/binary/redhat/8/x86_64/percona-xtrabackup-24-2.4.27-1.el8.x86_64.rpmzhttps://downloads.percona.com/downloads/Percona-XtraBackup-2.4/Percona-XtraBackup…

uni-app 打包h5 踩坑

坑1 在我直接点击上图所示编译打包时&#xff0c;报我当前的手机账号需要验证 我百度了下 说是hbuildx版本太低&#xff0c;我升级之后还是不行。 其实就乖乖根据提示去官网认证一下手机号就好了 坑2 打包出来的文件访问时是个空页面 这是因为没有在h5配置相对路径 坑踩了 记录…

功能测试转型测试开发年薪27W,又一名功能测试摆脱点点点,进了大厂

咱们直接开门见山&#xff0c;没错我的粉丝向我投来了喜报&#xff0c;从功能测试转型测试开发&#xff0c;进入大厂&#xff0c;摆脱最初级的点点点功能测试&#xff0c;拿到高薪&#xff0c;遗憾的是&#xff0c;这名粉丝因为个人原因没有经过指导就去面试了&#xff0c;否则…

【Python入门第三十六天】Python丨文件写入

写入已有文件 如需写入已有的文件&#xff0c;必须向 open() 函数添加参数。 “a” - 追加 - 会追加到文件的末尾“w” - 写入 - 会覆盖任何已有的内容 实例 打开文件 “demofile2.txt” 并将内容追加到文件中&#xff1a; f open("demofile2.txt", "a&qu…

前端性能优化实战

问题描述 在实际使用中发现, 等待时间经常有超过10秒以上的情况,接口响应慢&#xff0c;取决于服务器的硬件和软件配置、网络带宽、缓存机制、请求处理逻辑等 排查发现并不是只有4个接口慢&#xff0c;而是当有大量请求或者高并发的请求时&#xff0c;服务器所有请求响应都变…

c/c++开发,内存泄漏检测检测工具Valgrind

运行时诊断工具Valgrind&#xff0c;自动化代码分析的强力帮手 目录 一、Valgrind介绍 二、Valgrind源码编译及安装 三、Valgrind工具的使用 一、Valgrind介绍 Valgrind是用于内存调试、内存泄漏检测以及性能分析的软件开发工具。它可以监视 一个指定程序的活动并通知你在你…

Qt Quick - 输入控件综述

Qt Quick - 输入控件综述一、概述二、ComboBox 控件三、 Dial 控件四、TextArea 控件五、TextField 控件六、Slider 控件七、RangeSlider 控件八、Tumbler 控件一、概述 Qt Quick Controls为数字和文本输入提供了各种输入控件。每种类型的输入控件都有自己特定的目标用例。下面…