当前位置: 首页 > news >正文

网站维护成本百度应用商店下载

网站维护成本,百度应用商店下载,北京海淀网站建设,i网站建设原文链接:https://blog.csdn.net/qq_51470638/article/details/142151502 一、背景 在面向对象编程时,常常要添加类成员变量。 然而类成员一旦多了之后,也会带来干扰。 拿到一个类,一看成员变量好几十个,就问你怕不…

原文链接:https://blog.csdn.net/qq_51470638/article/details/142151502

一、背景

在面向对象编程时,常常要添加类成员变量。

然而类成员一旦多了之后,也会带来干扰。

拿到一个类,一看成员变量好几十个,就问你怕不怕?

二、解决思路

可以借助函数式编程思想,来消除一些不必要的类成员变量。

三、实例

举个例子:

class ClassA{
public:...int funcA(){m_valueA += 10;return m_valueA;}int funcB(){m_valueB += 100return m_valueB;}
private:int m_valueA = 0;int m_valueB = 0;
};

上面的类中,m_valueA仅仅被funcA()使用,m_valueB仅仅被funcB()使用,如果这些变量作为类成员:

  1. 对于那些不需要使用它们的方法而言,是一种干扰;
  2. 同时,也会让这些变量不那么可控,因为控制者无法保证其他方法不会修改它;

可以写成:

class ClassA {
public:ClassA(){{int valueA;m_funcA = [=] () mutable -> int {valueA += 10;return valueA;};}{int valueB;m_funcB = [=] () mutable -> int {valueB += 100;return valueB;};}}...int funcA (){return m_funcA();}int funcB (){return m_funcB();}
private:std::function<int()> m_funcA = nullptr;std::function<int()> m_funcB = nullptr;
};

这样,就把m_valueAm_valueB消除了——通过将它们闭包到lambda表达式中,然后将这个lambda存起来重复使用。

需要注意的是mutable修饰符和=值捕获。如果用引用捕获,栈变量会释放导致非法访存;如果不加mutable就无法修改值捕获的变量。

当然,lambda的初始化时机也可以更改,例如放到使用时,同时也做了判空更加健壮:

class ClassA {
public:int funC (){printf ("hello world");}int funcA (){if (!m_funcA) {int valueA;m_funcA = [=] () mutable -> int {valueA += 10;return valueA;};}return m_funcA();}int funcB (){if (!m_funcB) {int valueB;m_funcB = [=] () mutable -> int {valueB += 100;return valueB;};}return m_funcB();}
private:std::function<int()> m_funcA = nullptr;std::function<int()> m_funcB = nullptr;
};
http://www.dinnco.com/news/39164.html

相关文章:

  • wordpress怎么优化图片短视频seo排名
  • 工艺品做网站网络营销推广公司网站
  • 深圳本地招聘网站有哪些关键词林俊杰免费听
  • 免费做公司电子画册的网站搜索引擎营销的步骤
  • 建设网站的特色超级外链吧外链代发
  • wordpress打开网站打不开seoul什么意思
  • 前端可以自己做网站么网站建设公司网站
  • 基于云服务器的网站开发永久免费客服系统
  • 武昌做网站jw100百度seo查询
  • 网站后台用户管理系统全国各城市感染高峰进度查询
  • 网站建设cms系统上海优化外包公司排名
  • 自适应网站什么意思广东东莞今日最新消息
  • 网页背景做的比较好的网站手游推广去哪里找客源
  • 南宁做网站推广的公司网站推广在线
  • 黄石网络推广百度seo工作室
  • 网站开发建设需多少钱自媒体怎么赚钱
  • 周口网站建设费用产品线上推广方案
  • 做网站站长一年能赚多少钱邯郸seo排名
  • 临沂网站设计公司百度seo技术优化
  • 有免费做理化试验的网站吗seo经理
  • wordpress css字体颜色百度seo公司兴田德润
  • 建筑工程网是什么网站seo服务公司上海
  • 哪里可以做产品购物网站十大营销策划公司排名
  • 太原市做网站公司免费软文发布平台
  • 回收类型网站如何做怎么申请网站空间
  • 什么网站做兼职可靠app下载
  • 做黄网站用什么域名武汉服装seo整站优化方案
  • 网站内部优化cilimao磁力猫最新版地址
  • 网站下载地址网站首页seo关键词布局
  • 电商网站的程序有哪些网络优化是干什么的