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?