1. 类属性
类属性: 一个程序实体能对多种类型的数据进行操作或描述的特性。
类属函数:一个函数能对不同类型的数据(参数)完成相同的操作。
类属类:一个类的成员类型可变。
2. 函数模板
动态语言中在定义参数是不用指定类型,所以本身就具有类属性。
C++时一种静态类型语言,可以通过宏定义、指针类型参数、函数模板等方式实现类属性。
3. 指针类型参数
将参数类型定义为void *,因为void *可以接受任何指针类型。
但是这种方式可读性差,并且实现麻烦,一般不用。
4. 函数模板
定义
template <class T1, class T2, ...>
<返回值类型> <函数名> (<参数表>)
{...}
实例化
隐式:编译程序根据调用时实参的类型自动把函数模板实例化为具体的函数。
显式:sort<int>(a,100); sort<double>(b,100);等
也可以是带有具体类型的:
template <class T, int size>
void fun (T a)
{...}
f<int, 10>(a);
5. 类模板
template <class T1, class T2, ...>
class <类名>
{<类成员声明>
};
在类外部定义的成员函数
template <class T1, class T2, ...>
<返回值类型> <类名> <T1, T2, ...>::<成员函数名>(<参数表>){...}