Buenas, espero alguien pueda ayudarme con el siguiente problema, en clases me mandaron un problema de herencia y he tratado de hacerlo de la siguiente forma:
#include<iostream>
#include<string.h>
using namespace std;
class mamifero
{
protected:
char* dieta;
int age;
char* nacimiento;
public:
mamifero(){};
mamifero(char*, int, char*);
void alimento();
};
class felino : public mamifero
{
protected:
char* raza;
char* circo;
public:
felino(){};
felino(char* comida, int año, char* lugar, char* raz, char* circ):mamifero(comida, año, lugar);
void nombrecirco();
void nuevaestrella();
};
class gatodomestico : public felino
{
protected:
char* duenio;
public:
gatodomestico(){};
gatodomestico(char*);
// void nuevominino();
};
mamifero::mamifero(char* comida, int año, char* lugar)
{
dieta = new char[strlen(comida)];
age = año;
nacimiento = new char[strlen(lugar)];
dieta = comida;
nacimiento = lugar;
}
felino::felino(char* comida, int año, char* lugar, char* raz, char* circ):mamifero( comida, año, lugar)
{
raza = new char[strlen(raz)];
circo = new char[strlen(circ)];
raza = raz;
circo = circ;
}
gatodomestico::gatodomestico(char* x)
{
duenio = new char[strlen(x)];
}
void mamifero::alimento()
{
cout<<"La dieta es leche";
}
main()
{
bool flag = true;
int opc;
gatodomestico minino;
felino estrelladecirco;
while(flag == true)
{
cout<<"que desea hacer?\n";
cout<<"1. Ingresar datos del minino y estrella de circo\n";
cout<<"2. Imprimir la dieta del minino y estrella de circo\n";
cout<<"3. Imprimir el año y el lugar de nacimiento\n";
cout<<"4. Cambiar el nombre del dueño del minino\n";
cout<<"5. Cambiar el nombre del circo de la estrella de circo";
cout<<"6. Imprimir raza";
cin>>opc;
switch(opc)
{
case 1:
// minino.nuevominino();
;
}
}
}
Los errores que me salen son los siguientes:
|28|error: expected '{' at end of input|
|56|error: redefinición de 'felino::felino(char*, int, char*, char*, char*)'|
|28|error: se define 'felino::felino(char*, int, char*, char*, char*)' previamente aquí|
||=== Build finished: 3 errors, 0 warnings ===|
Al parecer no me funcionan los constructores con la herencia simple... alguien me podria decir cual es la manera correcta de hacerlo?
#include<iostream>
#include<string.h>
using namespace std;
class mamifero
{
protected:
char* dieta;
int age;
char* nacimiento;
public:
mamifero(){};
mamifero(char*, int, char*);
void alimento();
};
class felino : public mamifero
{
protected:
char* raza;
char* circo;
public:
felino(){};
felino(char* comida, int año, char* lugar, char* raz, char* circ):mamifero(comida, año, lugar);
void nombrecirco();
void nuevaestrella();
};
class gatodomestico : public felino
{
protected:
char* duenio;
public:
gatodomestico(){};
gatodomestico(char*);
// void nuevominino();
};
mamifero::mamifero(char* comida, int año, char* lugar)
{
dieta = new char[strlen(comida)];
age = año;
nacimiento = new char[strlen(lugar)];
dieta = comida;
nacimiento = lugar;
}
felino::felino(char* comida, int año, char* lugar, char* raz, char* circ):mamifero( comida, año, lugar)
{
raza = new char[strlen(raz)];
circo = new char[strlen(circ)];
raza = raz;
circo = circ;
}
gatodomestico::gatodomestico(char* x)
{
duenio = new char[strlen(x)];
}
void mamifero::alimento()
{
cout<<"La dieta es leche";
}
main()
{
bool flag = true;
int opc;
gatodomestico minino;
felino estrelladecirco;
while(flag == true)
{
cout<<"que desea hacer?\n";
cout<<"1. Ingresar datos del minino y estrella de circo\n";
cout<<"2. Imprimir la dieta del minino y estrella de circo\n";
cout<<"3. Imprimir el año y el lugar de nacimiento\n";
cout<<"4. Cambiar el nombre del dueño del minino\n";
cout<<"5. Cambiar el nombre del circo de la estrella de circo";
cout<<"6. Imprimir raza";
cin>>opc;
switch(opc)
{
case 1:
// minino.nuevominino();
;
}
}
}
Los errores que me salen son los siguientes:
|28|error: expected '{' at end of input|
|56|error: redefinición de 'felino::felino(char*, int, char*, char*, char*)'|
|28|error: se define 'felino::felino(char*, int, char*, char*, char*)' previamente aquí|
||=== Build finished: 3 errors, 0 warnings ===|
Al parecer no me funcionan los constructores con la herencia simple... alguien me podria decir cual es la manera correcta de hacerlo?
Muchas gracias... he resuelto el problema con tu ayuda!! te lo agradezco