Para mi tarea, tengo que crear una lista vinculada y debe ser una clase de plantilla. La asignación requiere una clase de plantilla llamada Lista y otra clase de plantilla anidada llamada Enlace.Cómo diseñar clases de plantilla anidadas donde las clases anidadas son del mismo tipo
Los métodos deben definirse fuera de la definición de la clase.
Primero creé una versión simple de la tarea y está funcionando, pero creo que hay un error en mi diseño.
#include <iostream>
using namespace std;
template <class T1>
class A
{
public:
template <class T2>
class B;
T1 _a;
};
template <class T1>
template <class T2>
class A<T1>::B
{
public:
T2 _b;
};
int main()
{
A<int> a;
a._a = 5;
A<int>::B<int> b;
b._b = 10;
cout << a._a << " " << b._b << "\n";
return 0;
}
Mi pregunta principal es, ya que la clase anidada será del mismo tipo, como se puede ver en la declaración A<int>::B<int> b;
, ¿hay una manera de tener la clase B sea automáticamente del mismo tipo que el A? ¿Mi pregunta tiene sentido? En otras palabras, ¿puedo hacer A<int>::B b;
yb automáticamente del mismo tipo que A? Nunca habrá una situación en la que tendría A<double>::B<int>;
por ejemplo.
bien, estaba pensando que iba a funcionar, tiene que haber sido un problema con mi sintaxis porque seguí recibiendo errores. Lo intentare otra vez. –