c++ Primer 第一章梳理知识点

1、为了支持分离式编译,将申明和定义区分开来。如果想要只是申明一个变量而非定义它,只要在变量前面加一个 extern ,而且不要给它初始化。初始化意味着定义,抵消了extern的作用。变量只能被定义一次,但是可以别申明很多次。在函数体内部如果初始化一个带有extern关键字的变量,将会报错。

2、引用即别名,引用并非对象,相反的,他只是对象的另一个名字。为引用赋值,实际上就是把值赋给了与引用绑定的对象;获取引用的值,实际上就是获取了与引用绑定的对象的值。因为引用不是一个对象,所以不能定义引用的引用。

3、C++程序最好使用nullptr来初始化指针为空指针,同时尽量避免使用NULL。任何非0指针对应的条件值都是true。如:int *pi = 1; if(pi)   if为真。另外指针可以用==来比较是否想等。一般来说*和&定义指针或者引用变量的时候应该和变量名写在一起,如: int  *a;

4、默认情况下,const对象尽在文件内有效。const变量在不加修饰的情况下必须要初始化。const的对象的操作中有一种初始化,如果利用一个对象去初始化另一个对象,他们是不是const常量都无所谓的。

1     int i = 20190227;
2     const int ci = i;
3     int ii = ci;

如果const变量的初始值不是一个常量表达式,而我们只想一个文件中定义又想要在不同文件中使用就需要在定义见面加extern关键字。而在申明前面加的作用也同样是为了在不同文件之间共享。所以,如果想要在多个文件之间共享const对象,必须在变量定义的前面加上extern关键字。

常量指针一般这样写:int  *const  i  = &a;

5、类型别名,传统的我们用typedef,比如: typedef double du; 我们就可以用du代替double来使用了,C++11定义了新的关键字using,他跟typedef的作用是一样,也是给类型取个别名 using double du; 

猜你喜欢

转载自www.cnblogs.com/xiaodangxiansheng/p/11139236.html