《C++Primer》读后感2
这两天在阅读过程中又遇到了一些问题,同时也学习到了一些新的语法,具体如下:
1.顶层const与底层const拷贝规则
其中顶层const不会受到什么影响,但是底层const的限制不能忽视,这是为了防止拷贝对象能够修改底层const指针指向对象
即
const int a = 0;
const int *const p1 = &a;
int *p2 = p1; //错误
2.constexpr变量
如果变量为常量表达式,最好声明为constexpr类型
3.constexpr和指针
限定符constexpr仅对指针有效,对其所指对象无效
4.类型别名
1.typedef
2.using
注:typedef char *pstring;
const char *cstr = 0; 与 const pstring cstr = 0;含义不同
5.auto
1.auto
auto定义变量必须有初始值
2.auto和引用
编译器以引用对象的类型作为auto的类型
设置类型为auto的引用时,初始值中的顶层常量属性仍然保留
3.auto和const
auto一般会忽略顶层const(希望推断出则需明确指出p62),保留底层const
6.decltype
1.decltype
编译器分析表达式得到类型,但不计算
2.decltype与引用
如果表达式内容为解引用操作,将得到引用类型
**** decltype((variable))结果永远是引用 p63
7.左值和右值
使用左值地址,使用右值数据
8.预处理与头文件
9.using与命名空间
头文件不应包含using声明
**** 10.cin与文件末尾 p78
11.string与字符串字面值
可以使用 + 进行追加
注:string类 .size() 函数返回类型为string::size_type(无符号整型)
12.范围for语句
目前来看可以用于对字符串每个字符执行某某操作
有待继续阅读,阅读让我认识到我对c++的理解还是过于浅薄,我这几天收获颇丰,我已经开始期待阅读完成后对《effective c++》的阅读了。