una tipos referencia programacion por paso pasar parametros parametro funcion entre diferencia como cadena argumentos c++ templates arguments type-mismatch

c++ - tipos - string por parametro c



c++ tipo/valor no coinciden en el argumento 1 en la lista de parĂ¡metros de la plantilla (1)

name es una clase de plantilla, por lo que debe especificar la plantilla:

people<name<string>>* aPerson = new person<name<string>>();

#include <iostream> using namespace std; template<class T> class people{ public: virtual void insert(T item)=0; virtual T show(T info)=0; }; template<class T> class name { private: T fname; T lname; public: name(T first, T last); // bool operator== (name & p1, name &p2) }; template <class T> name<T>::name(T first, T last){ fname = first; lname = last; } template <class T> class person : public people<T> { private: T a[1]; int size; public: person(); virtual void insert(T info); virtual T show(); }; template<class T> person<T>::person(){ size = 0; } template<class T> void person<T>::insert(T info){ a[0] =info; } template<class T> T person<T>::show(){ return a[0]; } int main(){ string first("Julia"), last("Robert"); name<string> temp(first,last); people<name>* aPerson = new person(); aPerson-> insert(temp); aPerson->show(); return 0; }

Estos son los errores que sigo recibiendo y no puedo identificar cuál es realmente el problema:

test.cpp:52: error: type/value mismatch at argument 1 in template parameter list for ''template<class T> class people'' test.cpp:52: error: expected a type, got ''name'' test.cpp:52: error: invalid type in declaration before ''='' token test.cpp:52: error: expected type-specifier before ''person'' test.cpp:52: error: expected '','' or '';'' before ''person'' test.cpp:53: error: request for member ''insert'' in ''* aPerson'', which is of non-class type ''int'' test.cpp:54: error: request for member ''show'' in ''* aPerson'', which is of non-class type ''int''