编程之美(二):Lamda匿名回调函数配合模板来实现代码最大复用

本文探讨了在编程中如何利用Lamda匿名回调函数配合模板来达到代码的最大复用。常见场景如操作的开始和结束处理、资源访问请求等,通过模板封装可以避免重复编写相似的函数。文中以DrawTriangle为例,展示了如何将Lamda函数指针传递给调用者,并提示在模板中正确使用&&和&以传递函数指针。
摘要由CSDN通过智能技术生成

        在我们平时项目中,一定会出现这种情况:大量的操作开始和结束的处理是一致的,比如一些打开显示、关闭消除的操作(如我们在编辑修改一个文件),而在中间要传入不同的实现体,

还比如一些对资源的访问请求、结束时的关闭断开等;还比如对一个界面控件的处理,其它的诸如任务栏、状态栏、进度条、Undo/Redo处理的逻辑大致都是一样的,现在不可能分别的写出每一个操作的函数

那么就要考虑采用一种模板封装的方法如下:

#pragma once
#include <iostream>

namespace   zhouyq {
    namespace GraphicUtility{
     
        enum GRAPHIC_TYPE
        {
            GRAPHIC_UNKOWN = -1,
            GRAPHIC_CIRCLE = 0,
            GRAPHIC_RECTANGLE = 1,
            GRAPHIC_TRIANGLE = 2
        };

    void  DrawRectangle();
    //实际上和画矩形的差别可能很大,里面的逻辑是不能复用的
    //这里仅仅做一个演示,实际相同的部分是封装在模板函数DrawGraphic中的
    void  DrawTriangle();

    template <class Fun>
    void   DrawGraphic(Fun&& fun, bool showStatusBar);

    }
}


#include "stdafx.h"
#include "MyTestForTe
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值