Raga, se ho questa classe,
#ifndef PRODOTTO_H_
#define PRODOTTO_H_
#include<string>
#include<list>
#include<iostream>
using namespace std;
#include"Nazione.h"
class Prodotto
{
friend ostream& operator << (ostream& out, const Prodotto& p);
public:
Prodotto();
Prodotto(string nome, string marca);
void setNome(string nome);
void setMarca(string marca);
virtual double getPrezzo() = 0;
string getNome();
string getMarca();
virtual ~Prodotto();
protected:
string nome;
string marca;
double prezzoInEuro;
list<Nazione> nazioniDiVendita;
};
#endif
Perche se faccio cosi:
ostream& operator << (ostream& out, const Prodotto& p)
{
out << "Nome prod: " << p.nome << endl;
out << "Marca prod: " << p.marca << endl;
for(list<Nazione>::const_iterator it = p.nazioniDiVendita.begin(); it != p.nazioniDiVendita.end(); it++)
out << *it << endl;
return out;
}
mi da errore? Non c e modo di implenentare l operatore << se si ha una lista negli attributi?
Grazie..