Originariamente inviato da shodan
Lo scopo di quell'operatore sarebbe di effettuare un confronto, non di assegnare dati.
Meglio se posti i dettagli del codice.

P.S.

La barra di chiusura del tag code è l'altra.
ok, grazie, eccolo di seguito:

codice:
File aula.h
class aula {
	private:
	string nome;
	int codice;
	
	public:
	aula();
	virtual ~aula(); 
	void setNome(string n) {nome=n;}
	string getNome() const {return nome;}
	void setCodice(int p) {codice=p;}
	int getCodice() const {return codice;}
	bool operator<(aula const&  au) const; //necessario per usare contenitore set
	friend ostream& operator<<(ostream& a, aula const& au);
	};

File aula.cpp
#include "aula.h"
(......)

bool aula::operator<(aula const& au) const {
	return codice < au.codice;
	}
ostream& operator<<(ostream& a, aula const& au) {
    return a << "aula: " << au.nome << " codice: " << au.codice ;
     };

File MainProgram.cpp
(dopo aver inserito gli oggetti nel set:)

set<aula>::iterator it_au; //(set1)
	set<aula2>::iterator it; //(set2)
	
	
	string nom;

	for (it_au= set1.begin(); it_au !=set1.end(); it_au++)
	  {
	    for (it= set2.begin(); it != set2.end(); it++)
	      if ((*it_au).getCodice()== (*it).getCodice()) {
		    nom=(*it).getNome();
		    (*it_au).setNome(nom);