c++的模板对于那些可以被多种类型重用的代码是非常有用的,如:symbian c++中的泛型集合rarray和rpointerarray就是使用的模板来实现的。但是,使用普通c++模板会带来代码尺寸大大增加的问题。本文将分为“c++模板基础”、“tbuf分析”、“瘦模板”三个部分,逐步深入讲解symbian c++瘦模板的概念和使用方法。 一、c++模板基础
在这一部分中不会详细的介绍c++的模板,只会已不同的代码的形式介绍c++模板的几种不同的使用方法,在这里只会以类模板作为例子。如果大家想对c++模板进行更深一步的了解,请参阅《c++ templates》一书。
1、类模板的声明
template class tstudent
{
...
};
而在symbian sdk中,我们看到的最常见的形式是:
template class tstudent
{
...
};
在上面的代码中,t通常成为“模板参数”。以上两种模板声明方式效果是一样的,template 的声明形式会容易让人产生误解,在此不一定非要类类型才能作为模板参数,相比之下template 的形式更好一些。
2、类模板的特化
类似于函数重载,类模板提供了对模板参数的重载,实现了对不同类型的参数的不同处理,这一个过程就叫做类模板的特化。通过以下代码可以简单的说明这一点:
1 template class tstudent
2 {
3 public:
4 void doprint()
5 {
6 console->write(_l("t"));
7 }
8 };
9
10 template <> class tstudent
11 {
12 public:
13 void doprint()
14 {
15 console->write(_l("tint"));
16 }
17 };
18
19 local_c void mainl()
20 {
21 tstudent stu1;
22 stu1.doprint();
23
24 console->write(_l("n"));
25
26 tstudent stu2;
27 stu2.doprint();
28 }
29
如果喜欢symbian编程总结-深入篇-瘦模板正解请收藏或告诉您的好朋友.