C++头文件
c的头文件以.h为扩展名
c++的头文件可以是.hpp为扩展名
命名空间
C++引入了新的概念,命名空间可以有效的避免大型项目中的各种冲突
class关键字是C++的核心,是面向对象编程的核心内容
更严格的类型转化
在C++,不同类型的指针是不能直接赋值的,必须强转
new和delete
new和delete是C++內建的操作符,不需要有任何头文件,用new分配的内存必须用delete释放,不要用free
内联函数
inline关键字的意思是,内联函数不作为函数调用,而是直接把内联函数的代码嵌入到调用语句中
内联函数适合函数代码很少,并且频繁的大量调用。
引用
引用就是一个变量的别名,而不是地址;
函数的缺省参数:
C++允许函数在定义的时候,提供缺省参数,如果调用函数的时候没有提供形参的值就是缺省值;
调用缺省参数的函数,一个参数可以不为缺省参数,但如果有第二个参数的话,第一个不是缺省参数,那么第二个参数必须是缺省参数。
引用做为函数的参数,没有出栈,入栈操作,所以效率更高;
如果要使引用参数的值不能在函数内部被修改,那么就定义为常量引用const&;
函数重载
函数名称是一样的,但是参数不同可以重载
函数参数相同,但返回值不同,不可以重载
C++类成员的保护
如果类函数返回的是成员变量的指针,为了避免在类外部成员变量被修改,所以函数就要返回常量指针。
如果一个类成员变量和一个全局变量重名,那么在类成员函数当中默认访问的是类成员变量。
在类的内部访问全局标识,关键字::
指针和引用的区别
相同点:
都是地址概念,指针指向的是一块内存区域,他的内容是所指向内存的地址,引用是某块内存的别名
不同点:
(1)指针是内存地址,引用是内存地址别名,并且程序需要为指针变量分配内存区域,而引用不要分配内存区域。
(2)引用再使用的时候不需要*解引用,但是指针需要解引用。
(3)引用只能被初始化一次,之后不能够改变,但是指针可以。
(4)引用不能够为NULL,但是指针可以为NULL。
(5)sizeof(引用)得到的是引用所指向的变量的大小,sizeof(指针)得到的是指针本身的大小。
(6)指针(++或者–)代表地址位移,但是引用(++或者–)实际上引用对应的值改变。