В настоящее время у меня есть это:
void ClassA::aFunction(QVector<ClassB *> items) {
//stuff
}
Я хотел бы превратить параметр для ClassA :: aFunction в QVector с шаблонами:
template <class T *> class QVector;
void ClassA::aFunction(QVector<T *> items) {
//stuff
}
Это дает мне синтаксисошибки, так каков правильный способ сделать это?
Редактировать:
У меня есть это сейчас:
classA.h:
template <class T>
class ClassA {
public:
void myFunction(ClassB *);
}
classA.cpp:
template <class T>
void ClassA<T>::myFunction(ClassB * b) {
QVector<T *> var = b->myBFunction();
}
classB.h:
template <class T>
class ClassB {
public:
void myBFunction();
private:
QVector<T *> myVar;
}
classB.cpp:
template <class T>
QVector<T *> ClassB<T>::myBFunction() {
return this->myVar;
}
У меня есть синтаксическая ошибка "объявление члена не найдено" с ClassA :: myFunction.У меня также есть ошибка "метод" myBFunction "не может быть решен" в ClassA :: myFunction.Как мне исправить эти две ошибки?
Edit2 Понял это:
classA.h:
class ClassA {
public:
template <class T> void myFunction(ClassB *);
}
classA.cpp:
template <class T>
void ClassA::myFunction(ClassB * b) {
QVector<T *> var = b->myBFunction<T>();
}
classB.h:
class ClassB {
public:
template <class T> void myBFunction();
private:
template <class T> QVector<T *> myVar;
}
classB.cpp:
template <class T>
QVector<T *> ClassB::myBFunction() {
return this->myVar;
}