20170529
一、析构函数
和类型名同名 函数名前有一个~
任何类型都只有一个无参析构函数
析构函数没有返回值类型
在对象销毁前自动调用析构函数,可以人为调用(一般不用)
负责销毁和释放资源
何时需要自定义析构函数?
有堆内存分配的时候(有成员变量是指针类型的时候)
二、拷贝构造函数
复制另外一个对象 根据原来的一个对象,复制出另外一个对象
浅复制
深复制 各个对象都要有自己独立的内存
三、new delete 和 malloc free的区别
new 比 malloc 多做了如下工作
如果类型的成员变量是类类型 自动构建成员
new自动调用构造函数
new自动处理类型转换
delete比free多调用了析构函数
四、static成员
静态成员函数
静态成员变量
和普通成员的区别 普通类型的成员必须通过对象去调用
静态成员不使用对象就可以访问
访问前在数据前加上 类名::
静态成员变量必须在类外进行初始化
静态函数中 不能 直接 访问 非静态成员(线程封装)