学习时间及标题:
2022-2-6 单例模式(singleton) 类模板(class template) 函数模板(function template) namespace 标准库(std)
学习内容:
1.单例模式(singleton):
目的:使该对象只存在一个。
当要使用该对象时,就可以通过调用静态函数创建对象,这时对象会一直存在且只会有一个。而没有使用到该对象时,就不会创建对象。
2.类模板(class template):
模板会造成代码的膨胀,是指当给定不同的typename时,就会得到不同的代码,但这一过程是必要的。
3.函数模板(class function):
这里要注意的一点是,函数模板无需像类模板一样每次都要把typename写出来,函数模板会根据参数类型进行推到,即argument deduction。
4.namespace:
namespace可以防止不同人写的代码冲突,namespace对代码进行了封装。
上图显示的是三种调用namespace的方法,第一种是直接将namespace全部打开,第二种是一行一行打开,第三种就是没打开写全名。
还需注意的是两个.h文件中namespace名字相同,命名空间中成员名称无重复
,那么他们会合并为一个命名空间
,编译通过;两个.h文件中namespace名字相同,命名空间中成员名称有重复
,那么程序会在链接时报错。因为连接器会检测到重复定义的变量。
5.标准库(std):
要多用,里边有一些数据结构和算法。