Alguien me puede dar una mano con esto?
Tengo estas 3 clases, A base con un metodo template, B template que
hereda de A y C template que hereda de B. Quiero llamar al metodo
template de A desde C y me tira este error de compilación:
test.cpp: In member function 'int* C<T>::GetInt()':
test.cpp:30: error: 'Get' was not declared in this scope
test.cpp:30: error: expected primary-expression before 'int'
test.cpp:30: error: expected ';' before 'int'
test.cpp:30: error: expected unqualified-id before '>' token
si cambio el metodo C::Get por
int* GetInt(){return B<T>::Get<int>();}
obtengo:
test.cpp: In member function 'int* C<T>::GetInt()':
test.cpp:31: error: expected primary-expression before 'int'
test.cpp:31: error: expected ';' before 'int'
test.cpp:31: error: expected unqualified-id before '>' token
las clases son las siguientes:
class A
{
public:
A(){}
virtual ~A(){}
template <class T>
T* Get(){return NULL;}
};
template <class T>
class B : public A
{
public:
B(){}
virtual ~B(){}
};
template <class T>
class C : public B<T>
{
public:
C(){}
virtual ~C(){}
int* GetInt(){return Get<int>();}
};
Gracias.
_______________________________________________
Lista de correo Programacion.
[email protected]
http://listas.fi.uba.ar/mailman/listinfo/programacion