C++之模板与泛型编程(中)

来源:互联网 发布:unity3d ongui 编辑:程序博客网 时间:2024/06/03 11:18

今天继续完善我的c++框架,由于是新手,所以问题源源不断,主要是为模块问题。比较模块文件实现要放到头文件中,这个也是在csdn论坛上发贴才知道,感谢网友的回答。

先来理解下模板的一些定义吧:

模板是一个蓝图,它本身不是类或函数,编译器用模板产生指定的类或函数的特定类型版本。所以我们要知道,它是一个用来生成类或函数的工具

主要文字理解了,哈哈!

一、模板所生成的函数并非都是合法的,关键在于所给的类型是否支持这一操作。可以在模板内部使用大量通信的泛型

二、编写模板代码时,对实参类型的要求尽可能少是很益的。

ⓐ模板的const引用

ⓑ函数体中的测试只用 < 比较  a < b   b < a 

类的实例化

实例化的样子如下:

 这里用int来实例化

template <class T> Queue<int> {

public :

Queue();

int & font();

...........

}

有T的地方都变为了int了,同时也在类后面多了<int>

类模板的每次实例化都会产生一个独立的类。为int类型实例化的Queue与其他的Queue类型没有关系,对其他Qeue类型的成员也没有特殊的访问权。

等完善。。。



原创粉丝点击