对于模板类,一般把接口与实现都放在头文件中(QVector就是这样的,不信翻Qt源码),不然很折腾。
myvector.h
#ifndef MYVECTOR_H
#define MYVECTOR_H
#include <QVector>
#include <QString>
template<class T> class MyVector : public QVector<T>
{
public:
MyVector<T>(){}
QString name;
QString getInfo(){
return "aaaaaaaaaaaaaaa";
}
};
#endif // MYVECTOR_H
测试代码main.cpp
#include "myvector.h"
#include <iostream>
int main(int argc, char *argv[])
{
MyVector<QString> myVector;
myVector.push_back("HaHa");
myVector.push_back("HeHe");
myVector.name="name";
int len=myVector.size();
for(int i=0; i<len; i++){
QString str=myVector.at(i);
std::cout<<str.toLatin1().data()<<std::endl;
}
std::cout<<"name="<<myVector.name.toLatin1().data()<<std::endl;
std::cout<<"info="<<myVector.getInfo().toLatin1().data()<<std::endl;
return 0;
}