我在看Qt源代码的时候看到
template <typename T> class QVector; (注意class QVector是分号)
这句代码什么意思,是把一个类的模板定义成QVector的名字吗,没有找到相关资料对这种用法说明,有知道的麻烦给说明下,谢谢~~
没看明白,你想问什么问题。
首先你要知道类的定义和类的声明,这只是一个声明。告诉了编译器后面QVector是个拥有一个模板参数的模板类
就这个类似。
class myclass;
声明myclasss这个符号是一个类。
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;