Buonasera, ho un problema con questo programma che � composto da:
1. Una classe base Manoscritto;
2. Una classe derivata Lettera;
3. Un contenitore realizzato come vettore allocato staticamente.
Il mio problema nasce in quest'ultimo e in particolare nella funzione chiamata "inserimento", quando cerco di inserire dal main un qualsiasi oggetto Lettera mi da il seguente errore:
[Error] no matching function for call to 'miospazio::Vettore::inserimento(miospazio::Letter a&)'
inoltre mi da due note, cliccando sulla prima mi rimanda alla funzione inserimento presente del file.h del vettore, mentre la seconda mi dice:
[Note] no known conversion for argument 1 from 'miospazio::Lettera' to 'miospazio::Manoscritto* const&'
Io per ora posto solo il main e i file relativi al contenitore, perch� le classi Manoscritto e Lettera le ho testate con esiti positivi (infatti noterete dei test fra /* */ all'interno del main). Se per� pensate siano necessari pure le altre due classi le posto senza problemi, l'importante � che capisco dove � che sbaglio.
codice:
MAIN 
#include <iostream>
#include "Vettore.h"
#include "Lettera.h"


using namespace std;
using namespace miospazio;




int main ()
{
	/*
	Lettera l;
	Lettera l1 (1,"io",3,"DOC","io","tu");
	Lettera l2=l1;
	
	//cin >> l;
	cout << l;
	
	cout << l1;
	cout << "\n________________________________\n";
	cout << l2;
	cout << "\n_________Lettura da file_________\n";
	
	Lettera l3;
	ifstream filein;
	filein.open("input.txt");
	l3.visualizza_dati(filein);
	cout << l3;
	
	cout << "\n________Stampa su file___________\n";
	ofstream fileout;
	fileout.open("output.txt");
	l1.memorizza_dati(fileout);
	*/
	Vettore v;
	Lettera l1 (1,"io",11,"Libro","io","tu");
	Lettera l2 (2,"tu",22,"Libro","tu","egli");
	Lettera l3 (3,"egli",33,"Libro","egli","noi");
	Lettera l4 (4,"noi",44,"Libro","noi","voi");
	Lettera l5 (5,"voi",55,"Libro","voi","loro");
	
	v.inserimento(l1);
}

Vettore.h
#ifndef VETTORE_H
#define VETTORE_H


#include "Lettera.h"


using namespace std;


namespace miospazio
{
	typedef Manoscritto* T;
	
	class Vettore
	{
		private:
			static const int MAX = 10;
			T vet[MAX];
			int riempimento;
			
		public:
			Vettore () {riempimento = 0;}
			Vettore (const int dim) {riempimento = dim;}
		
			bool empty () const {return riempimento==0;}
			bool full  () const {return riempimento==MAX;}
			
			void bubblesort ();
			bool ricerca (const T&);
			bool push (const T&);
			void inserimento (const T&);		
			void eliminazione (const int);
	};
}
#endif

Vettore.cpp
#include "Vettore.h"


namespace miospazio
{
	void Vettore::bubblesort ()
	{
		
		for (int i=1; i<riempimento; i++)
		{
			for (int j=0; j<riempimento-i; j++)
			{
				if (vet[j]->get_codice() > vet[j+1]->get_codice())
				{
					T temp;
					temp = vet[j];
					vet[j] = vet[j+1];
					vet[j+1] = temp;
				}
			}
		}
	}
	
	bool Vettore::ricerca (const T& a) 
	{
		bool trovato = false;
		int i = 0;
		while (i<riempimento && trovato == false)
		{
			if (a->get_codice()==vet[i]->get_codice())
			{
				trovato = true;
			}
			else i++;
		}
		return trovato;	
	}
	
	bool Vettore::push (const T& a)
	{
		if (full()) return false;
		else 
		{
			vet[riempimento] = a;
			riempimento++;
			return true;
		}
	}
	
	void Vettore::inserimento (const T& a)
	{
		if (ricerca(a)==false)
		{
			push (a);
			bubblesort();	
		}
		else cout << "Errore codice gi� presente nell'elenco";
		
	}


	void Vettore::eliminazione (const int C)
	{
		if (C!=riempimento)
		{
			vet[C] = vet[riempimento-1];
			riempimento--;
		}
		bubblesort();
			
	}
}