《C++ Primer, 5th Edition》 by Stanley B. Lippman

From 27-Feb, 2017 to 31-Mar, 2017(ET)

Day 05


头文件不应包含using声明,防止头文件被引用到其他文件造成名字冲突。



Day 04


表达式不要混用有符号和无符号类型,因为这时有符号会自动转化为无符号数。

unsigned u = 10;

int i = -42;

cout << u + i << endl;  // 4294967264


无符号相减要确保结果不为负。

unsigned u1 = 42, u2 = 10;

cout << u2 - u1 << endl; // 4294967264


引用不是对象。


const对象被设定为仅在文件内有效,如果想在多个文件之间共享const对象,必须在定义和声明都添加extern关键字。


第二章小结:介绍数据类型,太较真概念性的知识点,虽然有用,但是略枯燥,而且容易忘,比如顶层const底层const,虽然分不清但是在代码里能分得清const限定的是什么,这也就足够了,如果使用中有疑惑会混淆再来定点查阅吧。


Day 03


在算术表达式中不要使用char或者bool,char在很多机器上是有符号的,但在有些机器(arm架构)上是无符号的。

(Personally)看一个机器上的char默认是不是有符号的,可以把一个大于128的整数赋给一个char类型变量,如0xe4,signed char打印是-28,unsigned char是228。


当我们赋给无符号类型一个超出它表示范围的值时,结果是初始值对无符号类型表达数值总数取模后的余数;赋给有符号类型一个超出它表示范围的值时,结果未定义。


Day 02


测试程序需要反复键盘敲入一些同质的数据时,可以考虑使用文件重定向。

> 和 >>后结的文件不存在时都会自动先创建,如果存在前者会清空替换内容,后者是在原有内容上追加。

第一章小结:这章主要介绍了头文件、注释、控制结构(for循环、while循环、if-else)、类定义相关的基础知识。有基础的可以直接阅读一下源码中的头文件Sales_item.h,自己写几个简单的用例测试一下,熟悉的完全可以跳过这一章。


Day 01


C++11的新特性,GCC 4.8以下在编译需指定-std=c++0x。

编译器版本支持说明:http://cpprocks.com/c11-compiler-support-shootout-visual-studio-gcc-clang-intel/

配套源码下载:http://www.informit.com/store/c-plus-plus-primer-9780321714114

GNU低版本的下载GCC_pre_C11.zip

e.g., 书店程序的头文件Sales_item.h使用=default生成默认无参构造函数。

Sales_item() = default;



你可能感兴趣的:(《C++ Primer, 5th Edition》 by Stanley B. Lippman)