模板与泛型编程--实例化引言: 模板是一个蓝图,它本身不是类或函数。编译器使用模板产生指定的类或函数的特定版本号。产生模板的特定类型实例的过程称为实例化。	模板在使用时将进行实例化,类模板在引用实际模板类型时实例化,函数模板在调用它或用它对函数指针进行初始化或赋值时实例化。1、类的实例化	当编写Q....
                            
                            
                                分类:
编程语言   时间:
2014-07-16 23:25:29   
                                阅读次数:
252
                             
                    
                        
                            
                            
                                模板与泛型编程--模板特化引言:	我们并不总是能够写出对全部可能被实例化的类型都最合适的模板。某些情况下,通用模板定义对于某个类型可能是全然错误的,通用模板定义或许不能编译或者做错误的事情;另外一些情况下,能够利用关于类型的一些特殊知识,编写比从模板实例化来的函数更有效率的函数。	compare函数...
                            
                            
                                分类:
编程语言   时间:
2014-06-29 19:27:29   
                                阅读次数:
296
                             
                    
                        
                            
                            
                                模板与泛型编程--模板定义[续]四、模板类型形參	类型形參由keywordclass或 
typename后接说明符构成。在模板形參表中,这两个keyword具有同样的含义,都指出后面所接的名字表示一个类型。	模板类型形參可作为类型说明符在模板中的不论什么地方,与内置类型说明符或类类型说明符的使用方式...
                            
                            
                                分类:
编程语言   时间:
2014-06-07 08:47:59   
                                阅读次数:
347
                             
                    
                        
                            
                            
                                模板与泛型编程--重载与函数模板引言:	函数模板可以重载:可以定义有相同名字但参数数目或类型不同的多个函数模板,也可以定义与函数模板有相同名字的普通非模板函数。	但是,声明一组重载函数模板不保证可以成功调用它们,重载的函数模板可能会导致二义性。一、函数匹配与函数模板如果重载函数中既有普通函数又有函数模板,确定函数调用的步骤如下:1.为这个函数名建立候选函数集合,包括:	a.与被调用函数名字相同的任...
                            
                            
                                分类:
编程语言   时间:
2014-05-26 04:34:12   
                                阅读次数:
317
                             
                    
                        
                            
                            
                                模板与泛型编程--模板特化引言:	我们并不总是能够写出对所有可能被实例化的类型都最合适的模板。某些情况下,通用模板定义对于某个类型可能是完全错误的,通用模板定义也许不能编译或者做错误的事情;另外一些情况下,可以利用关于类型的一些特殊知识,编写比从模板实例化来的函数更有效率的函数。	compare函数和 Queue类都是这一问题的好例子:与C风格字符串一起使用进,它们都不能正确工作。	compare...
                            
                            
                                分类:
编程语言   时间:
2014-05-26 03:15:50   
                                阅读次数:
395
                             
                    
                        
                            
                            
                                模板与泛型编程--模板特化[续]三、特化成员而不特化类	除了特化整个模板之外,还可以只特化push和pop成员。我们将特化push成员以复制字符数组,并且特化pop成员以释放该副本使用的内存:template<>
void Queue::push(const char *const &val)
{
    char *new_item = new char[sizeof(val) + 1];
  ...
                            
                            
                                分类:
编程语言   时间:
2014-05-24 14:16:21   
                                阅读次数:
339
                             
                    
                        
                            
                            
                                模板与泛型编程--一个泛型句柄类引言:【小心地雷】	这个例子体现了C++相当复杂的语言应用,理解它需要很好地理解继承和模板。在熟悉了这些特性之后再研究这个例子也许会帮助。另一方面,这个例子还能很好地测试你对这些特性的理解程度。	前面示例的Sales_item和Query两个类的使用计数的实现是相同的。这类问题非常适合于泛型编程:可以定义类模板管理指针和进行使用计数。原本不相关的Sales_item...
                            
                            
                                分类:
编程语言   时间:
2014-05-22 22:46:57   
                                阅读次数:
479
                             
                    
                        
                            
                            
                                模板与泛型编程--模板定义[续]四、模板类型形参	类型形参由关键字class或 typename后接说明符构成。在模板形参表中,这两个关键字具有相同的含义,都指出后面所接的名字表示一个类型。	模板类型形参可作为类型说明符在模板中的任何地方,与内置类型说明符或类类型说明符的使用方式完全相同。具体而言,它可以用于指定返回类型或函数形参类型,以及在函数体中用于变量声明或强制类型转换。	template ...
                            
                            
                                分类:
编程语言   时间:
2014-05-22 06:37:23   
                                阅读次数:
407
                             
                    
                        
                            
                            
                                模板与泛型编程--类模板成员[续2]六、完整的Queue类Queue的完整定义:template  class Queue;
template 
ostream &operator &);
template  class QueueItem
{
    friend class Queue;
    friend ostream &
    operator(ostream &,const Q...
                            
                            
                                分类:
编程语言   时间:
2014-05-21 14:07:20   
                                阅读次数:
304
                             
                    
                        
                            
                            
                                模板与泛型编程--类模板成员[续1]二、非类型形参的模板实参template 
class Screen
{
public:
    Screen():screen(hi * wid,'#'),
        cursor(hi * wid),height(hi),width(wid) {}
    //..
private:
    std::string screen;
    std:...
                            
                            
                                分类:
编程语言   时间:
2014-05-21 14:00:04   
                                阅读次数:
332