Menú

Mostrar Mensajes

Esta sección te permite ver todos los mensajes escritos por este usuario. Ten en cuenta que sólo puedes ver los mensajes escritos en zonas a las que tienes acceso en este momento.

Mostrar Mensajes Menú

Temas - Lord_Lobotomi

#1
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?
#2
Sencillamente mi problema es que intento que el operador << me muestre un numero fraccionario como 3/4... pero lo que hace es mostrar el numero 6029362/2293672 asi el usuario ingrese cualquier numero... aqui adjunto el código, espero alguien me pueda ayudar

#include <iostream.h>

class racional
{
    int numerador, denominador;

    public:
    racional(int numerador, int denominador);

    friend ostream& operator << (ostream& s, racional C);


};

ostream &operator<< (ostream& s, racional C)
{
    s<<C.numerador<<"/"<<C.denominador;
    return s;

}

racional :: racional(int numerador, int denominador)
{
        numerador = numerador;
        denominador = denominador;

}

main()
{
    int num1, num2;

    cout<<"ingrese el numerador";
    cin>>num1;
    cout<<"ingrese el denominador";
    cin>>num2;

    racional C(num1, num2);
    cout<<C;
}