Dev - C++ - consulta programa

   
Vista:

consulta programa

Publicado por eduardo (3 intervenciones) el 04/02/2008 15:41:02
hola:tengo este programa en el cual tengo una clase libro y una clase libro en venta que hereda de libro,en libroenventa tengo que sobrecargar el operador ++ para incrementar la cantidad vendida

#include<stdio.h>
#include<string.h>
#include<iostream.h>
#include<conio.h>
class libro{
protected:
char *titulo;
int anioedicion;

public:
libro();
libro(char *c,int anio);
~libro();
libro(const libro &h);
const char *leertitulo() const {return titulo;}
int leeranio(){return anioedicion;}
};

class libroenventa:public libro{

float preunitario;
int cantejemp;

public:
libroenventa();
libroenventa(char *c,int anio,float p,int cant):libro(c,anio),preunitario(p),cantejemp(cant){};
~libroenventa();
void operator++();
// void modificatitulo(char *lib);
friend ostream& operator<<(ostream& os,const libroenventa &pp);
float leerprecio(){return preunitario;}
int leercantejemp(){return cantejemp;}
};

libro::libro(){
titulo=NULL;
anioedicion=0;
}
libro::libro(char *c,int anio){
titulo=new char[strlen(c)+1];
anioedicion=anio;
strcpy(titulo,c);
}
libro::~libro(){
delete[] titulo;
}
libro::libro(const libro& h){
strcpy(titulo,h.titulo);
anioedicion=h.anioedicion;
}
void libroenventa::operator++(){
cantejemp++;
}
libroenventa::~libroenventa(){
delete[] titulo;
}
ostream& operator<<(ostream& salida,libroenventa &pp){
salida<<" los atributos de son:"<<pp.leertitulo()<<","<<pp.leeranio()<<","<<pp.leerprecio()<<","<<pp.leercantejemp();
return salida;
}

void main(){
libroenventa libro1,libro2("uno",2007,123.9,4);
libro1=libro2++;
cout<<libro2;
getch()
}

cuando corro el programa main (la compilacion me da ok)
en la linea libro1=libro2++; me tira un error `make filed'
No se si tengo un error con el constructor de copia o con la sobrecarga de ++.

desde ya gracias
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder