insieme.h
codice:
#ifndef insieme_h
#define insieme_h
#include<iostream>
#include<stdlib.h>
using namespace std;
template<class tipoelem>
class insieme
{
public:
virtual void creainsieme() = 0;
virtual bool insiemevuoto() = 0;
virtual bool appartiene(tipoelem) = 0;
virtual void inserisci(tipoelem) = 0;
virtual void cancella(tipoelem) = 0;
//virtual void unione(insieme<tipoelem> *, insieme<tipoelem> *) = 0;
//virtual void intersezione(insieme<tipoelem> *, insieme<tipoelem> *) = 0;
//virtual void differenza(insieme<tipoelem> *, insieme<tipoelem> *) = 0;
void test();
};
#endif
template<class tipoelem>
void insieme<tipoelem>::test()
{
cout << " ***test del metodo CREAINSIEME***\n\n";
cout << "il metodo CREAINSIEME crea un insieme privo di elementi. per provare il metodo\n";
cout << "basta utilizzare il metodo INSIEMEVUOTO.\n\n";
cout << " insiemevuoto() = " << this->insiemevuoto() << "\n\n";
system("pause");
system("cls");
cout << " ***test del metodo INSIEMEVUOTO***\n\n";
cout << "il metodo INSIEMEVUOTO testa se l'insieme e' privo o meno di elementi.\n\n";
cout << " test del metodo su insieme privo di elementi:\n";
cout << " insiemevuoto() = " << this->insiemevuoto() << "\n";
cout << " test del metodo su insieme con almeno un elemento:\n";
cout << " inserimento di un valore nell'insieme: a = ";
tipoelem a;
cin >> a;
this->inserisci(a);
cout << " insiemevuoto() = " << this->insiemevuoto() << "\n\n";
system("pause");
system("cls");
cout << " ***test del metodo APPARTIENE***\n\n";
cout << "il metodo APPARTIENE testa se il valore fornito come argomento e' presente\n";
cout << "o meno tra i valori dell'insieme.\n\n";
cout << " test con esito positivo:\n";
cout << " appartiene(a) = " << this->appartiene(a) << "\n";
cout << " test con esito negativo:\n";
cout << " b = ";
tipoelem b;
cin >> b;
cout << " appartiene(b) = " << this->appartiene(b) << "\n\n";
system("pause");
system("cls");
cout << "i metodi UNIONE, INTERSEZIONE e DIFFERENZA non vengono testati in quanto\n";
cout << "essendo questa una class virtuale, non è possibile instanziare oggetti\n";
cout << "insieme, ma bisognerebbe fornire i puntatori a insieme da un main.\n\n";
system("pause");
}
questa è la classe base (virtuale)