Ver Mensaje Individual
  #4 (permalink)  
Antiguo 26/11/2014, 14:20
Lifka
 
Fecha de Ingreso: octubre-2014
Mensajes: 13
Antigüedad: 10 años, 1 mes
Puntos: 0
Respuesta: C++ error al acceder a miembro privado desde clase anidada y friend

Disculpad, es que es larguillo y tengo muchas cosas... aquí lo dejo más claro:

diccionario.h:
Código C++:
Ver original
  1. template <typename Key, typename Def>
  2. class diccionario{  
  3. public:
  4.  
  5.   typedef pair<Key, Def> entrada;
  6.   typedef pair<const Key, Def> value_type;
  7.   typedef unsigned int size_type;
  8.   class iterator;
  9.  
  10.   diccionario( );
  11.  
  12.  
  13.   class iterator {
  14.   public:
  15.     iterator();
  16.  
  17.   private:
  18.     iterator (entrada * p);
  19.     iterator (typename vector<entrada>::iterator it);
  20.     friend class diccionario;
  21.     value_type * it_v;
  22.   };
  23.  
  24. private:
  25.        
  26.   friend class iterator;    
  27.   vector<entrada> dic; // vector que almacena los elementos del diccionario
  28. };

diccionarioV2.hxx:

Código C++:
Ver original
  1. template <typename Key, typename Def>
  2. diccionario<Key,Def>::iterator::iterator( ){
  3.      /*
  4.       Esto es lo mismo que lo de abajo, esto funciona y lo otro no
  5.       vector<pair<Key, Def>> dic2;
  6.       pair<const Key, Def> * it_v2 = (pair<const Key,Def> *) &dic2[0];
  7.       */
  8.  
  9.       it_v = (pair<const Key,Def> *) &dic[0];
  10.  
  11.       //Esto tampoco funciona...
  12.      // Def a = dic[0].second;
  13. }

Última edición por Lifka; 26/11/2014 a las 14:50