与其他函数模板不同的是,在实例化类模板成员函数的进修
编译器不执行模板实参推断,相反,类模板成员函数的
模板形参由调用该函数的对象类型确定,调用模板成员函数比调用类似函数模板更灵活。
用模板形参定义的函数形参的实参允许进行常规转换。:
何时实例化类和成员
类模板的成员函数只有为程序所用才进行实例化,用于实例化模板的类型只需要满足实际使用的操作的要求
定义模板类型对象时,该定义导致实例化类模板。
定义对象也会实例化用于
非类型形参的模板实参
类模板中的友元声明
成员模板
重载与函数模板
函数模板可以重载: 可定义有相同名字单形参数据或类型不同的多个函数模板
也可以定义与函数模板具有相同名字的普通非模板函数
函数模板时建立算法库的基础,类模板时建立标准库容器和迭代器类型的基础
编译模板需要编程环境的支持,语言为实例化模板定义了两个主要策略:包含模板
和分别编译模型
这些模型规定了模板定义应该放在头文件还源文件