Ver Mensaje Individual
  #1 (permalink)  
Antiguo 13/07/2013, 05:01
zaius5
 
Fecha de Ingreso: julio-2013
Mensajes: 5
Antigüedad: 10 años, 9 meses
Puntos: 0
No me reconoce un tipo

He definido unos tipos con typedef en la funcion es_titular y no_es_titular l compilador me dice "usuario.cpp:52:10: error: ‘((Usuario*)this)->Usuario::tarjetas’ no tiene un tipo de clase"
Código:
class Usuario{
	public:
		typedef std::map<Numero,Tarjeta*> Tarjetas;//estos dos son los tipos que no me reconoce
		typedef std::map<Articulo*,unsigned> Articulos;
		class Id_duplicado{
			public:
				Id_duplicado(Cadena& id):id_(id){}
				Cadena idd()const{return id_;}
			private:
				Cadena id_;
		};
		Usuario(Cadena& id,Cadena& nom,Cadena& ap,Cadena& dir,Clave& cl);
		void es_titular(Tarjeta& t);
		void no_es_titular(Tarjeta& t);
		Cadena id()const;
		Cadena nombre()const;
		Cadena apellidos()const;
		Cadena direccion()const;
		const Tarjetas& tarjetas()const;
		void compra(Articulo&,unsigned);
		const Articulos& compra()const;
		size_t n_articulos()const;
		~Usuario();
	private:
		static std::set<Cadena> identificadores;
		Cadena identificador_;
		Cadena nombre_;
		Cadena apellidos_;
		Cadena direccion_;
		Clave contrasena_;
		Tarjetas tarjetas_;
		Articulos articulos;
};
std::ostream& operator<<(std::ostream& s,const Usuario& u);
void mostrar_carro(Usuario& u);
#endif
este es el cpp,resumido solo con als funciones que omereconocen los tipos
Código:
#include "usuario.h"
#include <unistd.h>
#include <string.h>
#include <utility> 

void Usuario::es_titular(Tarjeta& t){
	tarjetas.insert(t.numero(),&t);
}
void Usuario::no_es_titular(Tarjeta& t){
	tarjetas.erase(t.numero());
}
const Tarjetas& Usuario::tarjetas()const{
	return tarjetas_;
}
const Articulos& Usuario::compra()const{
	return articulos;
}

Última edición por zaius5; 13/07/2013 a las 05:47