C++的 四种编程范式有:

1.面向过程

2.面向对象

3.泛型编程

4.函数式编程

面向过程

int add1(int a,int b)
{return a+b;
} 

面向对象

这里我选择运算符重载

class Add
{
public:Add(int i):m_i(i){} int operator+(const int rhs){return m_i+rhs;} private:int m_i;
};

泛型编程

auto add2(T a,U b) ->decltype(a+b)
{return a+b;
} 

其中auto为自动推导数据类型,该处作用为推导函数返回值类型,但在此只作为函数返回值类型占位,函数值返回类型是通过 decltype检测,有点像printf函数,后面decltype(a+b)是参数列表。

注:如果编译时报错无法识别decltype,请使用c++11标准,alias g++='g++ -std=c++11',并将g++版本升级至4.7以上。

函数式编程

auto add3=[](int a,int b) -> int
{return a+b;
};

其中auto和->int的作用如上所述,该表达式为lambda表达式,即将函数定义赋值给add3变量,在此理论基础上可做如下操作

 using pf=int (*)(int,int);//将函数赋值给map成员map<int,pf>mf = {{0,add3},{1,[](int a,int b){ return a-b;}},{2,[](int a,int b){ return a*b;}},{3,[](int a,int b){ return a/b;}},}; 

我们还可以临时在main函数里添加函数给mf

mf.insert({4,[](int a,int b){ return a%b;} }); 

我们可以用参数来调用函数

    cout<<mf[0](89,7)<<endl;

这样我们就可以实现以行为参数化将函数当作普通数值来使用,可以做到即需即用。

参考文章:

https://blog.csdn.net/richenyunqi/article/details/89530589

C++的四种编程范式相关推荐

  1. 架构 - 关于三种编程范式

    世界上并没有完美的程序,但是我们并不因此而沮丧,因为写程序就是一个不断追求完美的过程. 三种编程范式包括 : 1. 结构化编程 2. 面向对象编程 3. 函数式编程 三种编程范式的特点 : 1. 结构 ...

  2. 常见的4种编程范式比较

    转载声明:感谢原作者分享!如有涉及版权问题,请与我联系.谢谢! 原作者: 向暖 参考链接: https://juejin.cn/post/6844904078858797063 文章目录 常见的4种编 ...

  3. 【大师教】利用工业机器人四种编程技术来提高生产效率

    一.概述 当前机器人广泛应用于焊接.装配.搬运.喷漆及打磨等领域,任务的复杂程度不断增加,而用户对产品的质量.效率的追求越来越高.在这种形式下,机器人的编程方式.编程效率和质量显得越来越重要.降低编程 ...

  4. 一种编程范式:对拍编程

    在GAN中,有生成器和鉴别器两种组件,这两种组件可以互相促进,共同进步. 在ACM比赛中,为了验证程序的正确性,一面使用暴力方法(容易验证正确性),一面使用快速方法(效率较高).当快速方法无法通过时, ...

  5. 四种编程命名规则:驼峰命名法,帕斯卡命名法,匈牙利命名法,下划线命名法

    人们交流靠各种语言,每行都有每行的所谓的"行话".程序员也不例外,众所周知,程序员都是用代码进行交流的.那么除了在代码中的注释之外, 程序员如何读懂别人的程序呢? 当然,程序员之间 ...

  6. 计算机逻辑学 范式,论亚里士多德形式逻辑之后的四种逻辑范式

    摘要: 逻辑学是研究思维形式及其规律的科学.现有的逻辑科学形形色色,五花八门.然而,逻辑科学并非很早就有那么多的门类,这些不同性质,种类的逻辑科学,是与社会进步相适应,在思维发展的过程中逐步形成,并在 ...

  7. (转)javascript异步编程的四种方法

    本文转自:http://www.ruanyifeng.com/blog/2012/12/asynchronous%EF%BC%BFjavascript.html 作者:阮一峰 本文仅仅作为个人mark ...

  8. 整洁架构之道--三种经典的编程范式

    本文是<Clean Architecture>--整洁架构之道中关于编程范式相关章节的笔记,首发于公众号「Go 招聘」 前言 之前整理了整洁架构之道这本书前两章节的读书笔记:<cle ...

  9. java范式_【java编程】三种非主流的编程范式?

    原标题:[java编程]三种非主流的编程范式? [Java培训]:的小编在一些平台上看到的高端的编程技巧,今天给大家介绍相应的三种编程范式,在编程中就提到了提到了不少小众语言,在这里小编希望借此让大家 ...

最新文章

  1. Spring Security 实战:基于配置的接口角色访问控制
  2. PAT-BASIC-1016-部分A+B
  3. kdj超卖_一个判断股票超买超卖现象的指标——KDJ,简单明了,准确且省心
  4. 【VMCloud云平台】Demo应用搭建(二)
  5. 【课题总结】OpenCV 抠图项目实战(6)色彩范围抠图
  6. ORA-16019: cannot use LOG_ARCHIVE_DEST_1 with LOG_ARCHIVE_DEST or LOG_ARCHIVE_DUPLEX_DEST
  7. 25+ 个 jQuery 网页拖放操作的插件
  8. 批量读写变换图片(转)
  9. 罗永浩的电子烟公司融资3000万元?8月或将发布新品 定价600元左右
  10. 解决background图片拉伸问题
  11. 我的ElasticSearch认证工程师之路
  12. 如何制作一寸、二寸、六寸照片。以后不用再去照相馆
  13. get请求获取不到参数
  14. C++的灵魂核心-类
  15. 网络常用密码忘记破解方法
  16. 一部值得收藏的PDA进化史
  17. 非wait线程即时唤醒epoll_wait
  18. html制作产品展示动画,3款零基础产品演示动画制作软件,真的很简单
  19. mysql delete from table_mysql delete from table 失败
  20. 阿里云安骑士免费基础版和付费企业版功能区别及作用

热门文章

  1. HDU5556 Land of Farms 最大独立集
  2. 前端发展历程与技术应用概述
  3. 东方梦符祭服务器无响应,东方梦符祭常见问题汇总 东方梦符祭常见问题解决方案...
  4. 云杉网络发布数据驱动的云网可视化与分析产品
  5. 使用Nexus搭建Maven私服流程
  6. CentOS命令行时区及时间同步
  7. 计算机的数据输入u盘,丢失存在U盘里的数据的几种原因-电脑自学网
  8. Google Earth Engine(GEE)——GEE自带的归一化指数计算工具介绍
  9. 用计算机怎么算百分之几,百分之多少怎么算(如何用Excel计算百分比?)
  10. 青龙脚本 禁用重复任务无法获取tasklist