C++语言程序设计 第九章群体类 和群体数据的组织 清华大学郑莉
第九章 群体类 和群体数据的组织 清华大学 郑 莉 C++语言程序设计
C++语言程序设计 清华大学郑莉 本拿主要内容 ·模板 。群体类 。群体数据的组织 ·深度探索
C++语言程序设计 清华大学 郑莉 2 本章主要内容 ⚫ 模板 ⚫ 群体类 ⚫ 群体数据的组织 ⚫ 深度探索
C++语言程序设计 清华大学郑莉 第一部分:模板 ●函数模板 ●类模板
C++语言程序设计 清华大学 郑莉 3 第一部分:模板 ⚫ 函数模板 ⚫ 类模板
C++语言程序设计 清华大学郑莉 数模板 丞 ● 函数模板可以用来创建一个通用功能的函数,以 数 支持多种不同形参,进一步简化重载函数的函数 体设计。 ·定义方法: 模 template<模板参数表> 函数定义 板 。模板参数表的内容 类型参数:class(或typename)标识符 常量参数:类型说明符标识符 模板参数:template<参数表>class标识符
C++语言程序设计 清华大学 郑莉 4 函数模板 ⚫ 函数模板可以用来创建一个通用功能的函数,以 支持多种不同形参,进一步简化重载函数的函数 体设计。 ⚫ 定义方法: template <模板参数表> 函数定义 ⚫ 模板参数表的内容 – 类型参数:class(或typename) 标识符 – 常量参数:类型说明符 标识符 – 模板参数:template <参数表> class 标识符 函 数 模 板
C++语言程序设计 清华大学郑莉 求绝对值函数的模板 丞 #include <iostream> using namespace std; template<typename T> 数 T abs(T x){ return x 0?-xx; 模 int main() int n =-5; 板 double d -5.5; 运行结果: cout <abs(n)<<endl; 5.5 cout <abs(d)<endl; return 0;
C++语言程序设计 清华大学 郑莉 5 求绝对值函数的模板 #include <iostream> using namespace std; template<typename T> T abs(T x) { return x < 0? -x : x; } int main() { int n = -5; double d = -5.5; cout << abs(n) << endl; cout << abs(d) << endl; return 0; } 函 数 模 板 运行结果: 5 5.5