内存分配:

        数据区:全局变量,静态数据,常量

        代码区:函数

        栈区: 局部变量,函数参数,返回数据,返回地址

        堆区:  其余(动态分配等)

 

new的返回值是一个指针,new创建对象时,要调用构造函数。

 

堆是有限的,如果堆中没有足够的自由空间以满足内存的需要时,此需要会失败,并且new返回一个空指针。

 

引用的主要用途是用作函数参数和函数的返回值;引用不是变量,本身没有地址值;引用在初始化被绑定到的某一个对象上后,将只能永远绑定到这个对象;没有空引用;引用返回的主要目的是将该函数用在赋值运算符左边;对象引用不分配存储空间。

 

inline函数只能先定义后使用。

 

拷贝构造函数:用一个已经存在的对象去初始化另一个对象,通常把引用参数声明为const参数,只有一个参数,该参数是该类的对象的引用,不能被显示调用。

 

常见的内存错误:

 1.内存分配未成功,却使用了它

2.内存分配虽然成功,但是尚未初始化就使用它

3.内存分配成功且已经初始化,但是操作越过了内存的边界

4.忘记了释放内存或者只释放了部分内存,因此造成内存泄漏

5.释放了内存却还在继续使用它