D5.13
实现代码功能的复用性:
函数重载:函数版本比较多,后期维护很麻烦;导致代码体系过于庞大;
宏函数:不安全,不做类型检查,只做傻瓜式替换;不适合实现过于复杂的函数;
模板:解决了函数重载版本过多的问题,同时也解决了宏函数不安全及不适应实现复杂函数的问题;
return a>b?a:b;//三目运算符:返回的是最终最大的数
模板会被编译两次:1、实例化模板之前
2、实例化模板之后
类模板会实例化两次:1、将类模板实例化成模板类;2、通过模板类实例化对象;
成员函数模板:使成员函数不要受类的模板参数限制,可以处理不同类型的参数。
在这里插入图片描述
模板特化的作用:处理一些模板处理不了或者处理不好的数据类型,需要把这些类型特例化;
类的全特化:全部类型参数的直接指定
内存管理方式:
1、用户管理:手动malloc/free new/delete c/c++ /
2、系统管理:GC(垃圾回收)机制(杜绝了内存泄漏) java
//僵尸进程、孤儿进程【守护进程、前台进程、后台进程】–init 1
//线程状态:可结合态(join),可分离态(用户)
改变栈空间大小
|
初始化:调用类型转换构造函数
智能指针常用于指向堆空间,指向栈空间时,会导致释放两次空间或者对象;