Hola a todos, a ver si alguien me puede echar un cable con una práctica.
Os comento un poco mi duda: Tengo que implementar una clase Grupo que es un manejador de otra clase Clientes que ya tengo creada en una librería estática funcionando perfectamente y linkada a este nuevo proyecto.
Este es el código del main:
Código c++:
Ver original#include <cstdlib>
#include <iostream>
#include "..\LibCliente\Fecha.hpp" //definicion de la clase Fecha
#include "..\LibCliente\Cliente.hpp" // definicion de la clase Cliente
#include "..\LibCliente\ClienteInternet.hpp" // definicion de la clase ClienteInternet
#include "..\LibCliente\ClienteMovil.hpp" // definicion de la clase ClienteMovil
#include "Grupo.hpp" // definicion de la clase Grupo
using namespace std;
int main(int argc, char *argv[])
{
Fecha f1, f2(29,2,2001), f3(29,13,2004);
cout << "Fechas: "<< f1.cadena() << ", " << f2.cadena() << ", " << f3.cadena() << endl;
cout << "Numero de clientes que hay: " << Cliente::obtenerCuenta() << endl;
ClienteInternet juan("Juan", "Perez", Fecha(2,2,2009),0.05, 2100, 25);
ClienteMovil pepe("Pepe", "Lopez", f2, 0.12, 78.30);
ClienteInternet ana("Ana", "Feria", f1, 0.07, 2100, 25);
ClienteMovil felipe("Felipe", "Reyes", Fecha(2,2,1972), 0.12, 8.30);
cout << "Numero de clientes existentes: " << Cliente::obtenerCuenta() << endl;
//Codigo Prueba 1) La clase Grupo
Grupo f(3), b(3), c(0);
b.alta(&luis);
b.alta(&pepe);
b.alta(&felipe);
b.alta(&pepe); //no lo debe agregar al existir ya en el grupo
Como podeis ver en las lineas 29,30,31,32, tengo que implementar la funcion alta en la clase grupo y pasa como parámetro la referencia de un cliente.
Código c++:
Ver original#ifndef GRUPO_HPP
#define GRUPO_HPP
class Grupo{
private:
Cliente **lista;
int nmax;
public:
Grupo::Grupo(int n){
nmax=n;
lista = new Cliente*[nmax]; //asignacion dinamica de memoria.
for(int i=0;i<=nmax;i++) //recorrer array e inicializarlo a NULL.
lista[i]=NULL;
}
void alta(Cliente *c);
~Grupo(); //destructor
};
#endif
Código c++:
Ver original#include "Grupo.hpp"
void Grupo::alta(Cliente *c){
for(int i=0; i<nmax; i++){
if(lista[i].getNombre()== ¿? )
cout << "Ese cliente ya existe";
else
//Añadirlo a la lista.
}
}
Mi primera pregunta es, ¿tengo bien definida la funcion alta? Si me pasan por referencia un cliente, al definir la funcion alta seria así "void Grupo::alta(Cliente *c)" ?
Otra pregunta es que tengo que comprobar que no exista ese cliente en mi lista. Pero... ¿Cómo lo haría?
Aclaro que la funcion getNombre está ya implementada en la clase cliente y me devuelve el nombre del cliente. Lo que no se es como compararlo con ese cliente que me pasan por referencia.
Espero no haberos liado mucho. Si queréis más datos pedídmelos.
Muchas gracias.