c语言中,使用malloc和free实现动态内存的分配和回收;c++中,使用new和delete实现动态内存的分配和回收。
new和delete总是成对出现!!!
函数重载
内联函数
因为它的直接参数替换,并不是对参数处理之后再进行计算,而且它还没有类型检查。
常量
引用
指针
构造函数
自动对数据成员进行初始化。
重载构造函数
析构函数
专门用于处理对象销毁时候的清理工作。
拷贝构造函数
有时候初始化挺麻烦的,能不能用已经存在的对象构造一个一模一样的新对象呢?因此拷贝构造函数出现。
上图中的Point obj3 = obj2 语句并不是赋值语句!而是与上一行代码一样,都为拷贝构造函数的调用方式!!!
类类型作为函数参数
如下代码段,有三次拷贝构造函数的调用和四次类对象的定义、初始化和分配空间,有大量的时间、空间的使用,效率非常低!
对象引用作为参数只有一次空间的分配,也没有参数传递,效率非常高。
在c++中,参数传递效率对象引用作为参数 > 对象指针作为参数 > 对象本身作为参数
对象数组
静态成员
关键字static进行申明。静态成员分为:静态数据成员和静态成员函数。
类的静态成员(static member)必须在类内声明,在类外初始化
如下:一个类对象改变了静态数据成员后,所有的类对象访问到的都是修改后的静态数据,因为所有的类对象共享静态数据成员的同一份存储空间。
与类对象有关的,可以直接定义为普通的成员;与类有关,而与类对象无关的,则需要定义为静态成员!
常对象和常成员
友元函数
类Y的定义必须在类X的后面,同时必须在类X之前说明Y为一个类!