// cumple.cpp - Definición de los métodos de la clase cumpleaños
#include <iostream>
#include "fecha.h"
#include "cumple.h"
using namespace std;

CCumpleanyos::CCumpleanyos(char *nom,int dd,int mm,int aa,long tel):
fecha_nacimiento(dd, mm, aa), telefono(tel)
{
  nombre = asignarCadena(nom);
}

void CCumpleanyos::asignarNombre(char *nom)
{
  delete [] nombre;
  nombre = asignarCadena(nom);
}

char *CCumpleanyos::obtenerNombre(char *nom) const
{
  if (nom && nombre)
    strcpy(nom, nombre);
  return nom;
}

void CCumpleanyos::asignarTelefono(long tel)
{
  if (tel < 100000000)
    cerr << "error: menos de 9 dígitos\n";
  else
    telefono = tel;
}

long CCumpleanyos::obtenerTelefono() const
{
  return telefono;
}

char *CCumpleanyos::asignarCadena(char *pcad) const
{
  char *pcadena;
  if (pcad == NULL) return NULL;
  try
  {
    pcadena = new char[strlen(pcad) + 1];
  }
  catch(bad_alloc e)
  {
    cout << "Insuficiente espacio de memoria\n";
    exit(-1);
  }
  strcpy(pcadena, pcad);
  return pcadena;
}

