一.
1.1 命名空间
C++ 引入了新的概念,命名空间可以有效避免大型项目中的各种名称冲突
1.2 new 和 delete
new 和 delete 是C++内建的操作符,不需要有任何头文件。用new分配的内存必须使用delete释放。
1.3 内联函数
inline 关键字的意思是,内联函数不作为函数调用,而是把内联函数的代码嵌入到调用的语句中。适合代码量少,平且调用频繁的情况。
1.4 引用
引用是一个变量的别名,而不是地址。
引用作为函数的参数,没有入栈出栈的操作,所以效率更高。
1.5 缺省参数
C++允许函数在定义的时候,提供缺省参数,如果调用时没有传入参数,那么形参的值就是缺省值。
1.6 函数重载
函数名称一样,但是参数不同可以重载。
函数参数一样,返回值不同,不可以重载。
二. 类和对象
2.1 C++ 类成员的保护
如果函数返回的是成员变量的指针,为了避免在类外部成员变量被修改,所以函数要返回常量指针。
如果一个类成员变量和一个全局变量重名,那么在类成员函数中默认访问类成员变量。
在类内部访问全局变量 标识符::
2.2 C++类的本质
类其实就是结构的数据成员加可执行代码,统一提供封装,继承,多态。
类成员的作用域局限在于内部,类的外部不可见
2.3 类的构造和析构
构造函数名称和类名一致,而且没有返回值。
一个类实例化为一个对象时,自动调用。
一个对象在销毁时会自动调用析构函数。
2.4 构造函数的初始化成员列表
初始化成员列表只能在构造函数使用
const成员必须使用初始化成员列表赋值
引用数据成员必须使用初始化列表赋值
由于析构函数只有一个,所以在不同的构造函数里面给函数的成员指针分配内存的时候一定要同意new或new[ ]
2.5 拷贝构造函数
2.5.1 浅拷贝与深拷贝
浅拷贝:两个个指针指向同一片内存
深拷贝:不同对象指针成员只想不同的内存地址,拷贝构造的时候不是简单的指针赋值,而是将内存拷贝过来。
原则: 如果成员有指针,那个需要自己实现拷贝构造函数,不然存在浅拷贝风险。
2.6 常量类成员,常量对象
类常量后面跟关键字const的意思是告诉编译器,这个函数内部不会对类成员变量做任何修改。
函数的参数如果是一个类,那个就用这个类的引用,如果不想参数被函数内部修改,那么采用const &
2.7 explicit
告诉C++编译器,要明确的调用这个构造函数,而不要自作聪明的认为=操作符是要调用构造的。
2.8 this 指针
this就是指向自己实例的指针
2.9 类的static成员变量
static变量是放到静态内存区的,程序加载就存在,一直到程序退出才清理。
类的static成员和类的对象没有直接关系,类的静态成员是放到静态内存区的,程序开始执行就存在,一直到程序结束才清理。
类的静态成员变量不论类的实例有多少,但成员变量只有一份。
网友评论