分享
 
 
 

简单模板概念

王朝vc·作者佚名  2006-01-08
窄屏简体版  字體: |||超大  

我以前关于模板的理解都是断断续续的,于是准备系统的专研一遍,以为得花去一两天的时间,没想到,不到一个上午,就完成了计划,回头一看,模板也无非就如此而已吗!于是,这篇的题目就叫“简单模板概念”。

抛去其他有关书和资料的讲法,我将按照我自己的理解以简单的语言描述模板。

(当然,实际上模板有它自己复杂的一面,呵呵,俺不讨论这个)

1. 模板的作用

哼!为什么一个类一个函数就只能用固定的数据类型呢?我只是类型不一样,可是处理上是完全相同的啊,这样代码重复率大大的增加了啊!有没有搞————错!

这是我以前愤愤不平的事情,直到我发现了模板,呵呵,那可是个好东西。它可以增加代码重用率。它使用非特定类型定义类或函数,到使用的时候再用特定的类型代替它们。

N,为了减少代码冗余和文字重用率,这里就不举例子了,在以下两节中举例。

2. 类模板

在类的定义中使用模板是我们最——常见的了,你看看,有ATL,有STL,呵呵,好多。

关——键字(周星驰语气):template

关键符号:<>

说关键的就是关键,上面的两个少了可不行,怎么用呢?看完下面这个简单的例子,你马上就会了:

#include <iostream.h>

template <class T>

class myclass{

T temp;

public:

myclass(T name){

temp=name;

}

T vomit(){

return temp;

}

};

void main()

{

myclass<int> t1(2);

cout<<t1.vomit()<<endl;

myclass<char*> t2("醉拳");

cout<<t2.vomit()<<endl;

myclass<float> t3(3.14159);

cout<<t3.vomit()<<endl;

}

千万别告诉我你没看明白,要不然,考下来执行一遍,别告诉我你不会怎么执行啊!倒~~~看到没有,在通常的类的定义前面加上template<class T>,这样T就是这个类中可以使用的类型了。在使用的时候类名和T要一起用才能正确表示这个类,并且用确定的类型代替这个T,就象上面写的myclass<int>,myclass<char*>之类的。OK,就这么简单。

注意函数vomit(谁能说出它的英文意思?呵呵),在这里是用内联函数实现的,那把他放到类的外面去呢?该怎么定义?呵呵,就象下面这样子啊:

template <class T>

T myclass<T>::vomit(){

return temp;

}

首先,前面加上和类定义一样的template <class T>,类名一定要注意,是myclass<T>而不是myclass。

OK,类模板知道这些就可以啦。

3. 函数模板

和类模板一样,函数也可以用好多类型来实现代码重用,举个例子得了,别不多说,自己看,或者运行一下,我都举的是很简单的例子,旨在揭示原理:

#include <iostream.h>

template <class T>

void f(T qie)

{

cout<<qie<<endl;

}

#define X f<char*>

void main()

{

f<int>(3);

f<char>('r');

X("aadf");

}

运行一下看看?

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
2023年上半年GDP全球前十五强
 百态   2023-10-24
美众议院议长启动对拜登的弹劾调查
 百态   2023-09-13
上海、济南、武汉等多地出现不明坠落物
 探索   2023-09-06
印度或要将国名改为“巴拉特”
 百态   2023-09-06
男子为女友送行,买票不登机被捕
 百态   2023-08-20
手机地震预警功能怎么开?
 干货   2023-08-06
女子4年卖2套房花700多万做美容:不但没变美脸,面部还出现变形
 百态   2023-08-04
住户一楼被水淹 还冲来8头猪
 百态   2023-07-31
女子体内爬出大量瓜子状活虫
 百态   2023-07-25
地球连续35年收到神秘规律性信号,网友:不要回答!
 探索   2023-07-21
全球镓价格本周大涨27%
 探索   2023-07-09
钱都流向了那些不缺钱的人,苦都留给了能吃苦的人
 探索   2023-07-02
倩女手游刀客魅者强控制(强混乱强眩晕强睡眠)和对应控制抗性的关系
 百态   2020-08-20
美国5月9日最新疫情:美国确诊人数突破131万
 百态   2020-05-09
荷兰政府宣布将集体辞职
 干货   2020-04-30
倩女幽魂手游师徒任务情义春秋猜成语答案逍遥观:鹏程万里
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案神机营:射石饮羽
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案昆仑山:拔刀相助
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案天工阁:鬼斧神工
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案丝路古道:单枪匹马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:与虎谋皮
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:李代桃僵
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:指鹿为马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:小鸟依人
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:千金买邻
 干货   2019-11-12
 
推荐阅读
 
 
 
>>返回首頁<<
 
靜靜地坐在廢墟上,四周的荒凉一望無際,忽然覺得,淒涼也很美
© 2005- 王朝網路 版權所有