Oppure

Loading
25/04/11 16:43
sigur
Salve, come si può intuire dal titolo del topic ho un piccolo problema a far "interagire" due classi.

A meno che non ricordi male, dichiarando in una classe A che essa è amica della classe B, tramite le funzioni di B, potrei accedere alle variabili "nascoste" della classe A.

I pezzi di codice che mi stanno danno problemi sono questi:

codice della classe "A":
#include<string>
using std::string;

class File{
	friend class HashTable;
.....
private:
 unsigned int occurrences;
};


codice della classe "B" che mi crea problemi:
vector<File>& where_are(const list<string>& phrases, const int & size){
	.....
founded_files[it_file->get_name()].occurrences += it_file->get_occurrences();
				}
	return founded_files;
}


L'errore che il compilatore mi da è che "occurrences" è una variabile privata di File e quindi non può essere acceduta. Ma dichiarando in File che essa è amica di HashTable, non potrei accederci?

Essendo il mio primo messaggio(/problema :rofl:) spero di essere stato il più chiaro possibile a tentare di esprimerlo.

Grazie ;)
Spulciando su internet non ho trovato nulla che mi poteva aiutare, se non i soliti 4 esempi.

________
EDITO:
Dopo ore di svariate imprecazioni, ho trovato l'errore. Non mi ero reso conto di aver dimenticato il namespace HashTable:: prima del nome della funzione :rotfl:.
Di conseguenza me la prendeva come una funzione esterna alla classe e non potevo utilizzare i "privilegi" friend. :asd:

Spero che questa mia distrazione sia anche d'aiuto agli altri. :rofl:
Ultima modifica effettuata da sigur 25/04/11 18:05
aaa