函数模板 参数化的函数称为函数模板 定义格式: template<模板参数表> <返回值类型><函数名>(<参数表>) <函数体> 至少一个
函数模板 --参数化的函数称为函数模板 定义格式: template <模板参数表> <返回值类型> <函数名>(<参数表>) { <函数体> } 至少一个
说明: ·<模板参数表>中的一项均由关键字cass开始,表示 种数据类型,在使用函数模板时必须将其实例化 参数表必须至少有一个参数说明,并且<模板参数表 >中的每个模板参数都必须在<参数表>中得到使用。 函数模板的定义知识一种说明,不是一个具体的函数 编译系统不为其产生任何执行代码。只有当编译器发 现一个具体的函数调用时,才根据具体的参数类型产 生相应的代码,这部分代码称为模板函数。它是函数 模板的一个具体实例 模板函数的生成由编译系统隐式生成,其实质是函数 重载
说明: •参数表必须至少有一个参数说明,并且<模板参数表 >中的每个模板参数都必须在<参数表>中得到使用。 •<模板参数表>中的一项均由关键字class开始,表示 一种数据类型,在使用函数模板时必须将其实例化。 •函数模板的定义知识一种说明,不是一个具体的函数。 编译系统不为其产生任何执行代码。只有当编译器发 现一个具体的函数调用时,才根据具体的参数类型产 生相应的代码,这部分代码称为模板函数。它是函数 模板的一个具体实例。 •模板函数的生成由编译系统隐式生成,其实质是函数 重载
class a class B public: public: A(int y:x(y) B(int y): x(y) int fno return x*x*x; int fno return x*x*x;) private: private. int xs template <class T>: class B public: B( y: Xy Tfno return x**x; pl rivate. X
class A { public: A(int y):x(y) { } int fn() {return x*x*x;} }; private: int x; class B { public: B(int y):x(y) { } int fn() {return x*x*x;} }; private: int x; class B { public: B(T y):x(y) { } T fn() {return x*x*x;} }; private: T x; template <class T>;
类模板 参数化的类称为类模板,它使得类中的某 些数据成员、某些成员函数的参数或返回值 能取任意类型。 定义格式: template<类型参数表> class<类模板名> <类成员的声明>
类模板 --参数化的类称为类模板,它使得类中的某 些数据成员、某些成员函数的参数或返回值 能取任意类型。 template <类型参数表> class <类模板名> { <类成员的声明> }; 定义格式:
模板类 类模板和它的实例 类模板模板类 关系 数学模型模型的实例 创建代码否 数据类型否 是是
模板类 类模板和它的实例 类模板 模板类 关系 数学模型 模型的实例 创建代码 否 是 数据类型 否 是