Problema overloading degli operatori

di il
1 risposte

Problema overloading degli operatori

Salve ho un problema con il seguente programma:


Si realizzi in linguaggio C++ un tipo di dato astratto CODA mediante
l’uso del costrutto class del linguaggio, ricorrendo ad una implementazione statica.
Gli elementi della coda siano istanze della classe Persona, la quale incapsula le seguenti variabili membro:
char * nominativo;
int eta;

Il tipo CODA deve fornire le seguenti funzioni membro:

void append(Persona e); //inserisce un elemento in coda
Persona pop(); //preleva un elemento dalla coda
bool empty (); //verifica se la coda è vuota
bool full(); //verifica se la coda è piena
void Stampa_Elementi(); //stampa gli elementi contenuti nella coda

Lo studente aggiunga alle classi CODA e Persona tutti i metodi che ritiene necessari ad un’esecuzione corretta del seguente programma principale:

#include <cstdlib>
#include "coda.h"
#include <iostream>
using namespace std;

int main(int argc, char *argv[])
{
Persona a1("Mario Rossi",29),a3("Antonio Esposito",34);
Coda c;

c.append(a1);
c.append(a3);

a1.setNominativo("Pippozzo");
a1.setEta(40);

c.append(a1);
c.StampaElementi();

Persona a2=c.pop(); //costruttore di copia
cout << "Elemento estratto: " << a2 << endl;

a2=c.pop();
cout << "Elemento di testa: " << a2 << endl;

c.Stampa_Elementi();


cout<<"\n\n";
system("PAUSE");
return 0;
}


dunque il mio problema sta nel ridefinire l'operatore che mi consenta di realizzare questo codice:
cout << "Elemento estratto: " << a2 << endl;
qualcuno sa aiutarmi?

1 Risposte

  • Re: Problema overloading degli operatori

    Ho provato a creare la funzione:
    friend ostream& operator<<(ostream &out,const Coda& c);

    ma l'errore che mi esce in fase di compilazione è il seguente:
    std::basic_ostream<_CharT, _Traits>& std::basic_ostream<_CharT, _Traits>::operator<<(double) [with _CharT = char, _Traits = std::char_traits<char>]

Devi accedere o registrarti per scrivere nel forum
1 risposte