首页 > 编程语言 >《Effective C++:改善程序与设计的55个具体做法》阅读笔记 5——实现

《Effective C++:改善程序与设计的55个具体做法》阅读笔记 5——实现

时间:2022-10-30 22:11:59浏览次数:52  
标签:定义 Effective 55 encrypted 延后 循环 C++ 变量

条款26:尽可能延后变量定义式的出现时间

  • 尽可能延后变量定义式的出现时间,因为有些变量定义了,可能未被使用,如“异常抛出,导致很多代码没有运行,这就有可能导致定义的变量未被使用”。定义的变量未使用,但是你仍然需要构造和析构,这就进行了无用功。

  • 由于std::string encrypted(password);优于std::string encrypted; encrypted=password;,所以不只应该延后变量的定义,直到非得使用该变量的前一刻为止,甚至应该尝试延后这份定义直到能够给它初值实参为止。

  • 使用在循环中的变量应该定义在循环外还是循环内:除非(1) 你知道赋值成本比“构造+析构”成本低,(2) 且你正在处理代码中对于效率高度敏感,否则你应该将变量定义在循环内。

条款27:尽量少做转型动作

旧式转型操作:

  • (T) expression

新式转型:

标签:定义,Effective,55,encrypted,延后,循环,C++,变量
From: https://www.cnblogs.com/codingbigdog/p/16842414.html

相关文章

  • 函数的常见样式/声明(C++/C)
      ============1.无参无返:  2.有参无返:  3.无参有返:  4.有参有返:  _____________________________________________________________________......
  • C++中的explicit
    C++中的explicit关键字只能用于修饰只有一个参数的类构造函数,它的作用是表明该构造函数是显示的;而非隐式的,跟它相对应的另一个关键字是implicit,意思是隐藏的,类构造......
  • C++内存管理
    文章目录自学网站写在前面C/C++内存分布C语言内存管理C++内存管理操作内置类型操作自定义类型operatornew&operatordeletenew&delete实现原理内置类型自定义类型定位n......
  • 华擎J3455和华擎J3455B安装DS918+启动慢/重启慢/关机慢的终极解决方法
    注意:不用此方法,网卡不能识别,或者说是太慢  几年前,黑群晖DS918系统刚刚出来的时候,华擎J3455由于使用的是和白群晖DS918+使用的是同一型号的CPU,国内一度卖到断货差不多......
  • C++——智能指针unique_ptr
    独占指针:unique_ptrunique_ptr在任何给定的时刻,只能有一个指针管理内存当指针超出作用域时,内存将自动释放该类型指针不可Copy,只可以Move运行结果没有运行delete......
  • 55.jump-game 跳跃游戏
    问题描述55.跳跃游戏解题思路从后向前遍历,只要nums[j]能由nums[j-1]或者更前面的点跳到,那么终点就从nums[j]变成nums[j-1]或更前面的点。代码#include<vector>u......
  • C++ DoubleLinkedList
    C++DoubleLinkedListForthisassignment,createaclassthatrepresentsadoublelinkedlist(forwardandbackwardnavigation),calledDoubleLinkedList,ofin......
  • C++——智能指针概述
    C++指针分类原始指针(rawpointer)智能指针:智能指针是原始指针的封装,其优点是会自动分配内存,不用担心潜在的内存泄露并不是所有的指针都可以封装成智能指针,很多时候......
  • 【C++】右值引用
    来源于:https://zhuanlan.zhihu.com/p/3359943701.什么是右值引用左值可以取地址、位于等号左边。右值没法取地址、位于等号右边。有地址的变量就是左值,没有地址的字面......
  • C++哈夫曼树
    C++哈夫曼树【讨论问题3】二叉树的应用—哈夫曼树[问题描述]在数据通信系统中,电文传送是经常遇到的问题,传送电文时需要将字符转换成二进制组成的字符串,当然在传送电文......