好长时间没有做C++的项目了,东西都要忘光光了,从今天开始,从新整理一下自己的知识,写个笔记啥的鼓励自己把这本书看完。
Primer C++ 学习笔记
一. 入门
1.1程序源文件的命名规范
C++程序文件的后缀与所运行的具体编译器有关。
包括
Prog1.cxx
Prog1.cpp
Prog1.cp
Prog1.c
1.2 标准输入输入对象
标准库定义了4个IO对象
处理输入时使用名为 cin(see-in)的isstream类型对象。
处理输出时使用名为cout(see-out)的osstream类型对象。
Ostream对象Cerr(see-err)标准错误,输入警告和错误的信息。
Ostream对象Clog(see-log)产生程序执行的一般信息。
二. 变量及基本类型
2.1类型:
Short, int,long都表示整型,存储空间不同,一般short为半个机器字长,int为一个机器字长,long为一个或者两个机器字长(32位机中,int和long通常的字长是相同的)
2.2变量的作用域:
局部变量可以屏蔽全局变量。
2.3 const
除特别声明,在全局作用域声明的const变量是定义该对象的文件的局部变量。此变量只存在于那个文件中,不能被其他文件访问。
通过制定const变量为extern,就可以在整个程序中访问const对象。
2.4.引用
1)引用必须用与该引用同类型的对象初始化。
int ival = 1024; int &refVal = ival; // ok: refVal refers to ival int &refVal2; // error: a reference must be initialized int &refVal3 = 10; // error: initializer must be an object |
2)引用是它绑定对象上的另一个名字,作用在引用上的所有操作都是作用在引用绑定的对象上。
引用被初始化后,只要该引用存在,则始终保持绑定在初始化时指向的对象上,不可能将引用绑定到另一个对象上
2.5 const引用
1)const引用是指向const对象的引用。
const int ival = 1024;时
const int &refVal = ival; // ok: both reference and object are const
int &ref2 = ival; // error: non const reference to a const object
const引用可以初始化为不同类型的对象或者初始化为右值
int i = 42;
//legal for const references only
const int &r = 42;
const int &r2 = r + i;
同样方式初始化非const引用是不合法的,会导致编译错误