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

Responder a