Я пытаюсь создать общий контейнер (так называемый «tcontainer_t»), что его внутренняя реализация может использовать вектор или список, а тип T - по желанию пользователя. Проблема возникает, когда в основном, когда я пытаюсь создать объект «tcontainer_t» - никто не знает до времени выполнения, если тип контейнера является вектором или списком.Инициализировать шаблон шаблона с шаблоном
//tcontainer_t.h
#include <vector>
#include <list>
using namespace std;
template <class T, class Container >
class tContainer_t {
private:
Container container;
typedef typename Container::iterator iter_t;
iter_t it;
public:
tContainer_t();
tContainer_t<T, Container>(const tContainer_t<T, Container>& other);
tContainer_t<T, Container>& operator=(const tContainer_t<T, Container>& classObj);
virtual ~tContainer_t();
};
#endif /* TCONTAINERT_H_ */
файл CPP является:
// tContainert.cpp
#include "tContainer_t.h"
// default constructor
template < class T, class Container >
tContainer_t<T, Container>::tContainer_t() {
this->container = new Container; //C2679 binary '=' no operator found which takes...
}
// copy constructor
template < class T, class Container >
tContainer_t<T, Container>::tContainer_t(const tContainer_t<T, Container>& other) {
}
//operator "="
template < class T, class Container >
tContainer_t<T, Container>& tContainer_t<T, Container>::operator=(const tContainer_t<T, Container>& classObj) {
if (this != &classObj){
}
return *this;
}
template < class T, class Container >
tContainer_t<T, Container>::~tContainer_t() {
// TODO Auto-generated destructor stub
}
и основным является:
int main() {
tContainer_t<int, vector<int*> > vContainer;
return 0;
}
пожалуйста игнорируют деструктор и оператор "=" - и существуют, я устранил код прояснить мой вопрос , Ошибка компиляции появляется в этой строке:
this->container = new Container;
И я знаю, что это не правильный способ сделать это.
но как я могу создать вектор или список, используя это? что должно быть написано в конструкторе?
Спасибо!
Вы программист на Java, не так ли? – celtschk
Серьезно, какова цель этого класса? Какую реальную проблему вы пытаетесь решить? – PaulMcKenzie
Поверьте мне, я бы не придумал такой плохой дизайн. Это задание, которое мне нужно сделать. – jizanthapus