Tenia entendido que las funciones no miembro de una clase declaradas como friend tenian acceso a la parte privada de la misma , no es asi?
class ConjuntoDeEnteros
{
// Definicion de la estructura de representacion de una lista
// donde almacenar el conjunto de tamaño "ilimitado"
typedef struct nodo
{
int dato;
struct nodo *siguiente;
}Nodo;
typedef Nodo *Conjunto;
// Definicion de atributos del objeto;
int tamConjunto;
Conjunto con;
public:
...........
friend ConjuntoDeEnteros operator *(const ConjuntoDeEnteros A, const ConjuntoDeEnteros B);
Ahora la implementacion en el *.cpp
ConjuntoDeEnteros operator *(const ConjuntoDeEnteros A, const ConjuntoDeEnteros B)
{
Nodo *aux;
ConjuntoDeEnteros C;
aux = A.con;
for(int i=0;i<A.cardinal();i++)
{
if(B.pertenece(aux->dato))
{
C.anade(aux->dato);
}
aux = aux->siguiente;
}
return C;
}
Pues bien , me dice que Nodo , aux no se declararon en este ámbito :shock:
Estoy algo fuera de juego la verdad , alguno puede decirme por qué es?