第9章 C++群体类和群体数据的组织.ppt

* * * * * * * * * * * * * * * * * * * * * * * 类模板不能表示具体的数据类型,但类模板的实例化类是数据类型 例:如要使reverse函数接收Array的参数 void reverse(Array arr); 错误!Array是模板,不能当作一个数据类型。 void reverse(Arrayint arr); 正确。Arrayint是数据类型。 template class T reverse (ArrayT arr); 正确。T虽未定,但ArrayT表示的是一个类模板实例。 同一模板在不同参数下的实例是完全无关的类型 彼此不兼容,无法相互赋值 通过Storeint的对象调用的成员函数,无法直接访问Storedouble对象的私有成员 * 9.5 深度探索 —— 9.5.1 模板的实例化机制 函数模板本身不是函数 编译器不会为函数模板本身生成目标代码 只有函数模板的实例能被调用 例:考虑下列模板 template class T void outputArray(const T *array, int count); 若a是int数组,outputArray(a, 10)等价于outputArrayint(a, 10),被调用的是outputArray实例 * 9.5 深度探索 —— 9.5.1 模板的实例化机制 模板的实例化 根据函数模

文档评论(0)

1亿VIP精品文档

相关文档