急!请C++高手帮我们回答一下5个问题。

来源:百度知道 编辑:UC知道 时间:2024/06/03 22:20:03
1) 什么是通用编程技术?有什么好处?
2) 什么是函数模板和模板函数?这两者之间是什么关系?
3) 什么是类模板和模板类?两者之间有什么关系?
4) 说出你对STL的定义?并指出STL中容器、迭代器和算法之间的关5) STL中为什么要提供通用算法?它和类模板的成员函数相比,有什么特征?

1通用编程技术,其实STL就是一种通用编程技术。我们的面向对象编程注意的是编程的数据方面,而我们的通用编程技术注意的是算法方面。它们之间的共同点 是抽象和创建可以重用的代码。通用编程技术旨在写出独立于数据类型的代码。在C++中完成通用编程技术的工具是模版。
2
函数模板举例
template <class T>
T max(T a,T b)
{
return a-b;
}

类模板举例
template<class T>
class A
{
public:
A(T x,T y):X(x),Y(y){}
void getx();
private:
T X,Y;
};
template<class T>
void A<T>::getx()
{return x;}

3
类模板

类模板,是对一批仅仅成员数据类型不同的类的抽象,程序员只要为这一批类所组成的整个类家族创建一个类模板,给出一套程序代码,就可以用来生成多种具体的类,(这类可以看作是类模板的实例),从而大大提高编程的效率。

定义类模板的一般形式是:
template <类型名 参数名1,类型名 参数名2,…>
class 类名
{
类声明体
};
例如,template <class T>
class Smemory
{…
public:
void mput(T x);

}
表示定义一个名为Smemory的类模板,其中带类型参数T。

在类模板的外部定义类成员函数的一般形式是:
template <类型名 参数名1,类型名 参数名2,…>
函数返回值类型 类名<参数名 1 参数名 2,…>::成