effective C++学习一(仅供个人学习记录,本文摘录effective C++)
条款 1:尽量用 const 和 inline 而不用#define
   #define ASPECT_RATIO 1.653 编译器会永远也看不到 ASPECT_RATIO 这个符号名,因为在源码进入编译器 之前,它会被预处理程序去掉,于是 ASPECT_RATIO 不会加入到符号列表中。 如果涉及到这个常量的代码在编译时报错,就会很令人费解,因为报错信息指 的是 1.653,而不是 ASPECT_RATIO。
解决这个问题的方案很简单:不用预处理宏,定义一个常量:
    const double ASPECT_RATIO = 1.653;
除了指针所指的类型要定义成 const 外,重要的是指针也 经常要定义成 const。例如,要在头文件中定义一个基于 char*的字符串常量, 你要写两次 const:
    const char * const authorName = "Scott Meyers";
,定义某个类(class)的常量一般也很方便,只有一点点不同。要把常 量限制在类中,首先要使它成为类的成员;为了保证常量最多只有一份拷贝,
还要把它定义为静态成员:
    class GamePlayer {
    private:
      static const int NUM_TURNS = 5;    // constant declaration
      int scores[NUM_TURNS];             // use of constant
      ...
};
#define max(a,b) ((a) > (b) ? (a) : (b)) 这个语句有很多缺陷,
template<class T>
    inline const T& max(const T& a, const T& b)
    { return a > b ? a : b; }
effective C++学习一(仅供个人学习记录,本文摘录effective C++)的更多相关文章
- 烂笔头@WP 的博文仅供自己学习的备忘录
		前记:本博主的博文仅供自己学习的备忘录. 说明:很久未用博客,登录密码已忘记,费劲找回来,特写本博文申明.因为,今天邮件收到一条博文的评论,有谩骂本博主之意,甚觉委屈.所以,写以下文字说明“1.我的博 ... 
- 学习SpringBoot,整合全网各种优秀资源,SpringBoot基础,中间件,优质项目,博客资源等,仅供个人学习SpringBoot使用
		学习SpringBoot,整合全网各种优秀资源,SpringBoot基础,中间件,优质项目,博客资源等,仅供个人学习SpringBoot使用 一.SpringBoot系列教程 二.SpringBoot ... 
- effective C++学习三(仅供个人学习记录,本文摘录effective C++)
		条款 3:尽量用 new 和 delete 而不用 malloc 和 free 把 new和 delete 与malloc 和 free 混在一起用也是个坏想法.对一个用 new 获取来的指针调用 ... 
- effective C++学习二(仅供个人学习记录,本文摘录effective C++)
		条款 2:尽量用<iostream>而不用<stdio.h> scanf 和 printf 很轻巧,很高效,你也早就知道怎么用它们,这我承 认.但尽管他们很有用,事实上 sca ... 
- Asp.net MVC4 +EF6开发的个人网站源码和介绍(仅供新手学习)
		本项目是我去年利用业余时间开发的,采用的是asp.net mvc 4 +EF6+三层架构,适合新手进行学习,高手就没有什么价值了,可以直接跳过. 源码和数据库下载(已上传到git):https://g ... 
- vue将网页中的特定部分转成pdf并下载(仅供个人学习记录)
		先安装支持 将页面html转换成图片npm install --save html2canvas 将图片生成pdfnpm install jspdf --save 组件引用: import html2 ... 
- html页面的CSS、DIV命名规则(仅供参考学习)
		CSS命名规则: 头:header 内容:content/containe 尾:footer 导航:nav 侧栏:sidebar 栏目:column 页面外围控制整体布局宽度:wrapper 左右中: ... 
- visio2013 激活工具,仅供交流学习
		visio2013激活软件 环境是 win7, 64 bit 装了 visio 2013 , 可以却不能用它来画图,在网上找了一些破解工具,大都不能解决问题.网上不靠谱的广告型文章太多了 所幸,终于找 ... 
- MVC中的自定义标签分页控件,仅供大家学习!!
		public static HtmlString ShowPageNavigate(this HtmlHelper htmlHelper, int currentPage, int pageSize, ... 
随机推荐
- Cookie快速入门实践
			第一个servlet[比如是CookieDemo01]中的代码如下: import javax.servlet.http.Cookie; //--------省略若干代码----------- pro ... 
- 基于IDEA环境下的Spark2.X程序开发
			我们选择在线安装 这个是windows下的scala,直接双击安装就可以了 安装好之后可以验证一下 这个是我本地的jdk1.8安装包,直接双击安装 安装完成后可以验证一下 https://archiv ... 
- 禁用SSL v2.0、SSL v3.0协议
			1.禁用SSL v2.0.SSL v3.0协议,禁用低强度加密密钥.使用TLS 1 TLSv1.1 TLSv1.2版本.2.禁用SSLv2参考修补方法如下:查看本机sslv3加密列表:openssl ... 
- windows下git的使用
			1.安装git 下载地址:https://git-scm.com/download/win 
- 关于百度world 编辑器改变上传图片的保存路径图片不显示的问题
			在ueditor.mini for asp.net 中,将上传的图片保存的路径更改了,可图片在 world 编辑器中不显示,但却可以上传到指定的保存目录下,解决这个问题的方法 是: 在udditor_ ... 
- try or install Ubuntu on MeegoPad T01
			Ref: Install Ubuntu on Meego Pad T01 with a Live ISO Image MeegoPad T01 has recently been shown to b ... 
- 【数据分析方法论】指标_DAU/MAU
			背景 选择好的指标,就已经完成了一半的分析. 从入行数据分析开始定指标时的纠结,到现在已经可以相对比较熟悉这个路子了.从现在开始是一个积累好指标的阶段.而这里要谈的一个指标是:DAU/MAU. 资料收 ... 
- eclipse创建的maven项目中使用javafx
			类似普通maven项目,不需要特地创建javafx项目. 将fxml资源文件放在resource目录下即可. 
- 11.纯 CSS 创作一个荧光脉冲 loader 特效
			原文地址:https://segmentfault.com/a/1190000014700727 HTML代码: <html> <head> <link rel=&quo ... 
- $(document).ready和window.onload  简单分析区别
			<锋利的JQuery>翻开没看几页,就遇到了这个神奇的问题,之前在橙旭园学习的时候,JQuery只教了一些基础的,像链式操作等,那时以为这个和window.onload()差不多一模一样, ... 
