首页 新闻 会员 周边

关于c++模板的问题

0
悬赏园豆:5 [待解决问题]

我在看Qt源代码的时候看到

template <typename T> class QVector; (注意class QVector是分号)

这句代码什么意思,是把一个类的模板定义成QVector的名字吗,没有找到相关资料对这种用法说明,有知道的麻烦给说明下,谢谢~~

C++
晨卸淡影的主页 晨卸淡影 | 初学一级 | 园豆:197
提问于:2012-09-13 23:33
< >
分享
所有回答(3)
0

没看明白,你想问什么问题。

Launcher | 园豆:45045 (高人七级) | 2012-09-14 09:57
0

首先你要知道类的定义和类的声明,这只是一个声明。告诉了编译器后面QVector是个拥有一个模板参数的模板类
就这个类似。
class myclass;
声明myclasss这个符号是一个类。

眯妖 | 园豆:820 (小虾三级) | 2012-09-14 14:28
0

template是关键字,说明这是模版,其后紧接尖括号<>,包围起来一个或多个识别名称(T)。这些名称用来表示我们希望用到的数据类型。其后class类关键字, QVector是类名。

例如:template<typename T> class QVector  //这里typename也可以是class,两者只有一点点区别,typename好一点

{

  T data;//T就相当与int,float等类型了,在你调用的时候指定是int还是float还是其他的类型。

  vector<T> container;//如果你指定int的话,这里就是vector<int> container;

};

在调用的时候,QVector<int> v1;那么v1中的数据成员data就是int类型的。向量是vector<int> container;

@咸鱼 | 园豆:180 (初学一级) | 2012-09-28 10:37
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册