Lo siento, no he podido contestar antes. Aquí dejo mi prototipo simplificado.
Código:
#include <iostream>
#include <list>
using namespace std;
class MostrarLista;
class Contenedor
{
public:
Contenedor() {}
private:
list<string> lista;
friend class MostrarLista;
};
class MostrarLista
{
public:
MostrarLista(const Contenedor& c) { ap = c.lista.begin(); }
private:
list<string>::iterator ap;
};
int main()
{
return 0;
}
Código:
main.cpp: In constructor ‘MostrarLista::MostrarLista(const Contenedor&)’:
main.cpp:21: error: no match for ‘operator=’ in ‘((MostrarLista*)this)->MostrarLista::ap = c->Contenedor::lista. std::list<_Tp, _Alloc>::begin [with _Tp = std::basic_string<char, std::char_traits<char>, std::allocator<char> >, _Alloc = std::allocator<std::basic_string<char, std::char_traits<char>, std::allocator<char> > >]()’
/usr/include/c++/4.2.1/bits/stl_list.h:113: note: candidates are: std::_List_iterator<std::basic_string<char, std::char_traits<char>, std::allocator<char> > >& std::_List_iterator<std::basic_string<char, std::char_traits<char>, std::allocator<char> > >::operator=(const std::_List_iterator<std::basic_string<char, std::char_traits<char>, std::allocator<char> > >&)
CalgaryCorpus muy amable y muchas gracias por dedicar tiempo a este problema que tengo. Gracias. Intentaré hacer lo mismo aquí los ratos libres que tenga.