Ciao a tutti io devo creare una lista in C++ attraverso due classi differenti una classe nodo ed una classe lista. Nell prima inserire il dato ovvero l'informazione del nodo e il puntatore al successivo nonchè le funzioni di get e sei dei due dati. Nella seconda classe è invece presente solamente il puntatore di testa della nostra lista e le varie funzioni di inserimento, rimozione, conteggio dei nodi e ricerca di un elemento. Sono riuscito a insrire in testa ma non riesco ad effettuare l'inserimento il coda.
Questo è il mio header file:
#include <iostream>
using namespace std;
class Nodo
{
	private:
		double dato;
		Nodo* ptr_succ;
	public:
		Nodo();
		~Nodo();
		Nodo(double d, Nodo* p);
		double get_dato();
		void set_dato(double d);
		Nodo* get_ptr();
		void set_ptr(Nodo* p);
};
class Lista : public Nodo
{
	private:
		Nodo* puntatore;
	public:
		Lista();
		~Lista();
		Lista(Nodo* p);
		void set_puntatore(Nodo* p);
		Nodo* get_puntatore();
		void inserire_testa(double d);
		void inserire_coda(double d);
		void cerca(double d);
		void conta();
};
Questa è la funzione che avevo pensato: 
void Lista :: inserire_coda(double d)
{
	Nodo* indice;
	for(indice=puntatore; indice=NULL; indice=indice->get_ptr())
	{
		if(indice->get_ptr()==NULL)
		{
			Nodo* nuovo_ptr;
			nuovo_ptr=new Nodo;
			nuovo_ptr->set_dato(d);
			nuovo_ptr->set_ptr(NULL);
			indice=nuovo_ptr;
		}
	}
}
Non ho errori di compilazione ma non mi viene inserito il nodo all'interno dellla lista. Sapete aiutarmi a trovare dove sbaglio e a fornirmi una soluzione? Grazie in anticipo