Código:
class TProducto
{
protected:
String fnombreprod;
String fcalidad;
int fprecio;
int fpublicidad;
float fporciento;
public:
TProducto(String nombreprod, String calidad, int precio, int publicidad, float porciento);
~TProducto();
};
//implementación
TProducto::TProducto(String nombreprod, String calidad, int precio, int publicidad, float porciento)
{
fnombreprod = nombreprod;
fcalidad = calidad;
fprecio = precio;
fpublicidad = publicidad;
fporciento = porciento;
}
//----------------------------------------
class TFruta: public TProducto
{
private:
String fnombrefruta;
int fvence;
String fsabor;
float fpesolibras;
public:
TFruta(String nombreprod, String calidad, int precio, int publicidad, float porciento, String nombrefruta, int vence, String sabor, float pesolibras);
~TFruta();
};
//implementación
TFruta::TFruta(String nombreprod, String calidad, int precio, int publicidad, float porciento, String nombrefruta, int vence, String sabor, float pesolibras):TProducto(nombreprod, calidad, precio, publicidad, porciento)
{
fnombrefruta=nombrefruta;
fvence=vence;
fsabor=sabor;
fpesolibras=pesolibras;
}
Declaraste un constructor inline en la clase derivada y luego lo redefiniste mal, sin declarar a qué clase pertenece.
Ten en cuenta que el destructor no se hereda y tendrás que llamar al destructor de la clase madre explícitamente.
Saludos.