下面有关函数模板和类模板的说法正确的有?
A.函数模板的实例化是由编译程序在处理函数调用时自动完成的
B.类模板的实例化必须由程序员在程序中显式地指定
C.函数模板针对仅参数类型不同的函数
D.类模板针对仅数据成员和成员函数类型不同的类
解析:
模板(Template)是一种强大的C++软件复用特性,通常有两种形式:函数模板和类模板。函数模板针对仅参数类型不同的函数(答案C ok);类模板针对仅数据成员和成员函数类型不同的类(答案D ok)。函数模板和类模板可以是程序员只需制定一个单独的代码段,就可表示一整套称为函数模板特化的相关(重载)函数或是表示一整套称为类模板特化的相关的类。这种技术称为泛型程序设计(generic programming)。
使用模板的好处在于,可以使程序员编写与类型无关的代码。
模板是一个类家族的抽象,它只是对类的描述,
编译程序不为类模板(包括成员函数定义)创建程序代码,但是通过对类模板的实例化可以生成一个具体的类以及该具体类的对象。