【1】源代码

 1 class WTP
 2 {
 3 public:
 4     WTP(double dPrice = 1, double dQuantity = 10)
 5         : m_dPrice(dPrice)
 6         , m_dQuantity(dQuantity)
 7     {}
 8
 9     double getDiscount();
10
11 private:
12     double m_dPrice;
13     double m_dQuantity;
14 };
15
16 double WTP::getDiscount()
17 {
18     double dAmount = m_dQuantity * m_dPrice;
19     if (dAmount > 1000)
20     {
21         return (dAmount * 0.95);
22     }
23     else
24     {
25         return (dAmount * 0.98);
26     }
27 }

【2】以查询取代临时变量

 1 class WTP
 2 {
 3 public:
 4     WTP(double dPrice = 1, double dQuantity = 10)
 5         : m_dPrice(dPrice)
 6         , m_dQuantity(dQuantity)
 7     {}
 8
 9     double getDiscount();
10
11 private:
12     double getAmount();
13
14 private:
15     double m_dPrice;
16     double m_dQuantity;
17 };
18
19 double WTP::getDiscount()
20 {
21     if (getAmount() > 1000)
22     {
23         return (getAmount() * 0.95);
24     }
25     else
26     {
27         return (getAmount() * 0.98);
28     }
29 }
30
31 double WTP::getAmount()
32 {
33     return (m_dPrice * m_dQuantity);
34 }

【3】总结

以一个临时变量保存某一表达式的运算结果。将这个表达式提炼到一个独立函数中。

将这个临时变量的所有引用点替换为对新函数的调用。此后,新函数就可以被其他函数使用。

Good Good Study, Day Day Up.

顺序 选择 循环 总结

转载于:https://www.cnblogs.com/Braveliu/p/7339556.html

1.4 以查询取代临时变量相关推荐

  1. Replace Temp with Query(以查询取代临时变量)

    一个临时变量保存某一个表达式的运算结果 double basePrice = quantity * itemPrice; if (basePrice > 1000) {return basePr ...

  2. oracle查询时定义临时的变量,oracle学习笔记之临时变量的使用

    在oracle中临时变量可以用&|&&   name 的格式代表临时变量使用& 和使用&& 是有区别的 以下是一个不使用临时变量的查询语句: SQL&g ...

  3. postgres 显示变量_sql - 如何在PostgreSQL查询中声明变量

    sql - 如何在PostgreSQL查询中声明变量 如何声明变量以用于PostgreSQL 8.3查询? 在MS SQL Server中,我可以这样做: DECLARE @myvar INT SET ...

  4. @Transient 实体类临时变量

    使用Hibernate+JPA开发,实体类与数据库表映射,但今天遇到了需要从前台接收一个参数,对应模糊查询数据库的两个字段,所以只能新建一个临时变量来接收前台传过来的参数,又写入数据库.这种情况就可以 ...

  5. 记一次由于临时变量导致的CPU使用率过高问题

    目录 问题 问题发现过程 问题解决 问题 在上一篇博文[内存泄漏]一个现网问题告诉你血淋淋的事实:java内存泄漏很严重处理了由于打开资源后没有及时释放,导致内存使用率居高不下的问题(35.80%降至 ...

  6. bug诞生记——临时变量、栈变量导致的双杀

    这是<bug诞生记>的第一篇文章.本来想起个文艺点的名字,比如<Satan(撒旦)来了>,但是最后还是想让这系列的重心放在"bug的产生过程"和" ...

  7. c语言中变量有什么作用是什么,C语言里面局部变量和临时变量有什么区别?

    typedef extern static _Thread_local register 其中,除了 typedef (放在这里仅仅是为了描述语法方便),其它几个(配合变量声明的位置)描述了的变量的 ...

  8. 交换数字(不用临时变量)

    编写一个函数,不用临时变量,直接交换numbers = [a, b]中a与b的值. 示例: 输入: numbers = [1,2] 输出: [2,1] 示例代码: class Solution(obj ...

  9. 【C语言刷题】交换两个变量(包含不创建临时变量)的解法

    目录 一.常规方法(引入空瓶变量) 二.题目要求,不允许创建临时变量 2.1 通过两数加法实现交换 2.2 按位异或操作符实现交换 题目:写代码实现两个变量的交换.(不允许创建临时变量) 一.常规方法 ...

最新文章

  1. SAP SD-如何控制定价折扣的总额度
  2. linux安装node js的二进制文件安装方式的注意事项
  3. Java虚拟机 —— 垃圾回收机制
  4. pcf8951 ad/da(iic)转换模块 在 esp8266下的实现
  5. 设置硬盘休眠linux,linux笔记本设置休眠
  6. 日本画风超级“诡异”毕业典礼上线,网友:有被吓到,谢谢!
  7. html试题及答案,HTML试题及答案
  8. 部署一个Windows Server 2008 的只读域控制器
  9. Intel 64/x86_64/IA-32/x86处理器 - 指令格式(2) - 8086/16位指令格式概述
  10. MySQL 5.6 dump/load buffer pool实验
  11. 怎么让envi中影像背景为0_eCogniton波段权重设置——基于ENVI的波段信息量计算
  12. if语句、逻辑表达式、运算符
  13. Golang环境windows 设置 GOROOT 和 GOPATH
  14. 2012年8月编程语言就业趋势
  15. 【Python】MySQLdb库的使用以及格式化输出字段中的值
  16. 前端页面模拟浏览器搜索功能Ctrl+F实现
  17. 【已注册】充QQ业务软件
  18. max2 android9.0,乐视max2 安卓9.0刷机包
  19. vue 首屏优化加载(三)(CND引用)
  20. Linux系统文件服务

热门文章

  1. Codeforces Round #335 (Div. 2)
  2. Maven系列三Maven内置变量
  3. JPA基础(二)(转)
  4. Nagios监控部署(四)--被监控主机配置
  5. 今天来说一下我的SAMC
  6. Kubernetes 弹性伸缩全场景解析 (一):概念延伸与组件布局
  7. 高性能mysql的事物隔离级别
  8. 企业项目开发--分布式缓存memcached(3)
  9. MySQL外键设置中的的 Cascade、NO ACTION、Restrict、SET NULL
  10. c# 任务栏托盘图标鼠标进入MouseEnter和鼠标离开MouseLeave实现