<b>泛型编程与计划新思维</b>[VC/C++编程]
本文“<b>泛型编程与计划新思维</b>[VC/C++编程]”是由七道奇为您精心收集,来源于网络转载,文章版权归文章作者所有,本站不对其观点以及内容做任何评价,请读者自行判断,以下是其具体内容:
前言
永久记着,编写代码的目标在于简单明了,不要利用语言中的冷静特点,耍小聪明,重要的是编写你理解的代码,理解你编写的代码,这样你大概会做的更好.
1998年,国际C++尺度正式通过,尺度化对C++最重要的奉献是:对"强盛的抽象概念"给于更有力的支持,以降低软件的复杂度,C++供应了二种功效强盛的抽象办法:面向对象编程与泛型编程.面向对象编程大家一定很熟习了,这里就不再颤抖了.提到泛型编程(Generic Programming),有的人大概还不太熟习,但是提到STL,你就一定会有所耳闻了.STL(Standard Template Library,尺度模板库) 其实就是泛型编程的实现品,STL是由Alexander Stepanov(STL之父)、David R Musser和Meng Lee三位大师共同发展,于1994年被归入C++尺度程序库.STL固然加入C++尺度库的时间相对较晚,但它倒是C++尺度程序库中最具革命性的部份,同时也是C++尺度程序库中最重要的构成部份.由于新的C++尺度库中几近每一样东西都是由模板(Template)构成的,当然,STL也不会例外.所以,在这里有必要先概要阐明一下模板的有关概念.
模板概念
通过利用模板可以使程序具有更好的代码重用性.记着,模板是对源代码举行重用,而不是通过担当和组合重用对象代码,当用户利用模板时,参数由编译器来替换.模板由类模板和函数模板二部份构成,以所处理的数据范例的阐明作为参数的类就叫类模板,而以所处理的数据范例的阐明作为参数的函数叫做函数模板.模板参数可以由范例参数或非范例参数构成,范例参数可用class和typename关键字来指明,二者的意义相同,都表示背面的参数名代表一个潜在的内置或用户定义的范例,非范例参数由一个普通参数声明构成.下面是类模板和函数模板的简单用法:
template<class T1, int Size>
class Queue // 类模板,此中T1为范例参数,Size为非范例参数
{
public:
explicit Queue():size_(Size){}; // 显式构造,避免隐式转换
……
template<class T2> void assign(T2 first,T2 last); // 内嵌函数模板
private:
T* temp_;
int size_;
}
// 类模板中内嵌函数模板Compare的外围实现(如在Queue类外实现)
template<class T1,int Size> template<class T2>
void Queue<T1,Size>::assign (T2 first,T2 last) {};
// 模板的利用办法
int ia[4] = {0,1,2,3};
Queue<int, sizeof(ia)/sizeof(int)> qi;
qi.assign(ai,ai+4);
以上是“<b>泛型编程与计划新思维</b>[VC/C++编程]”的内容,如果你对以上该文章内容感兴趣,你可以看看七道奇为您推荐以下文章:
本文地址: | 与您的QQ/BBS好友分享! |