Per il mio compito a casa, devo creare un elenco collegato e deve essere una classe template. Il compito richiede una classe template chiamata List e un'altra classe template annidata chiamata Link.Come progettare classi template annidate in cui classi annidate sono dello stesso tipo
I metodi devono essere definiti al di fuori della definizione della classe.
Ho creato una versione semplice del compito e sta funzionando, ma ritengo che ci sia un errore nel mio progetto.
#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;
}
mia domanda principale è, dal momento che la classe annidata sarà dello stesso tipo, come si può vedere dalla dichiarazione A<int>::B<int> b;
, c'è un modo per avere classe B sia automaticamente dello stesso tipo A? La mia domanda ha senso? In altre parole, posso fare A<int>::B b;
e b automaticamente lo stesso tipo di A? Non ci sarà mai una situazione in cui vorrei avere A<double>::B<int>;
per esempio.
OK, ho pensato che avrebbe funzionato, ci deve essere stato un problema con la mia sintassi quindi perché continuavo a ricevere errori. Ci riproverò. –