Ir para conteúdo
Fórum Script Brasil
  • 0

Herança de Classe em C.


Binder

Pergunta

Olá amigos do Fórum, Gostaria de saber como faço para utilizar variaveis de outras classes, dentro da classe que estou herdando os métodos e atributos.

Por Exemplo: Tenho 3 classes :

class circulo
{
      public:
        float raio_circulo;   
        void ler_raio(void);
        void mostrar_area_circulo(void);
        void mostrar_perimetro(void); 

};
class retangulo
{
    public:   
        float lmaior_ret, lmenor_ret;
        void ler_retangulo(void);
        void mostrar_area_retangulo(void);
};
class cilindro: public circulo, public retangulo     //classe que herda métodos e atributos das outras duas.
{
    public:
        //void ler_cilindro(void);
        void mostrar_area_cilindro(void);
        void mostrar_volume_cilindro(void);
      
};
Precisaria fazer o calculo da area e o volume do cilindro, mas não sei como pegar as variaveis que herdei das classes anteriores. Área do Cilindro -> 2 x Área do Círculo + (Perímetro do Círculo x Lmaiordo Retângulo) Volume do cilindro -> Área do Círculo x Lmaior do Retângulo
void cilindro:: mostrar_area_cilindro(void)
{
    float y;
    
    y = (2 * area) + (peri x  lmaior_ret);               //aqui busco variaveis das outras classes 
   printf("\nArea do retangulo e: %.2f",y);
};


                          ----------
void cilindro:: mostrar_volume_cilindro(void)
{
    float v;
    
    //v = (2 * area) + (peri x  lmaior_ret);              //aqui busco variaveis das outras classes
    //printf("\nArea do retangulo e: %.2f",v); 
};

Link para o comentário
Compartilhar em outros sites

2 respostass a esta questão

Posts Recomendados

  • 0

Opa, Como estava trabalhando com Herança de atributos e métodos em linguagem C, tava meio confuso na hora de usa-los na minha classe herdada.

Mas consegui resolver, segue abaixo um exemplo para servir de conhecimento ao amigos do fórum.

#include <iostream.h>
#include <conio.h>

class circulo
{
      public:
        float raio_circulo;   
        void ler_raio(void);
        void mostrar_area_circulo(void);
        void mostrar_perimetro(void); 

};

class retangulo
{
    public:   
        float lmaior_ret, lmenor_ret;
        void ler_retangulo(void);
        void mostrar_area_retangulo(void);
};


class cilindro : public circulo, public retangulo
{
    public:
        //void ler_cilindro(void);
        void mostrar_area_cilindro(void);
        void mostrar_volume_cilindro(void);
      
};      

//Descricao da classe circulo
void circulo:: ler_raio(void)
{
printf("CALCULANDO CIRCULO\n\n");     
printf("Informe raio:");
scanf("%f",&raio_circulo);
};

void circulo:: mostrar_area_circulo()    
{
     float area;   
     
     area = (3.14 * raio_circulo *raio_circulo);
     printf("\nArea do circulo e: %.2f",area);
};

void circulo :: mostrar_perimetro(void)
{
     float peri;
     
     peri = (2 * 3.14) * raio_circulo; 
     printf("\nPerimetro do circulo e: %.2f",peri);
};

//Descricao da classe retangulo

void retangulo:: ler_retangulo(void)
{
    printf("CALCULANDO RETANGULO\n\n"); 
    printf("Informe lado maior do retangulo:");
    scanf("%f",&lmaior_ret);
    printf("Informe lado menor do retangulo:");
    scanf("%f",&lmenor_ret);
};

void retangulo:: mostrar_area_retangulo(void)
{
    float ret;
    
    ret = lmaior_ret * lmenor_ret;
    printf("\nArea do retangulo e: %.2f",ret);
};


//Descrição da classe cilindro 
void cilindro:: mostrar_area_cilindro(void)
{
    float y,perimetro;
    
    printf("CALCULANDO CILINDRO\n\n"); 
    printf("Informe a area do cilindro:");
    scanf("%f",&raio_circulo);
    printf("Informe perimetro do circulo:");
    scanf("%f",&perimetro);
    printf("Informe lado maior do retangulo:");
    scanf("%f",&lmaior_ret);
    
    y = (2 * raio_circulo) + (perimetro * lmaior_ret);
    
    printf("\n");
    printf("Area do cilindro e : %.2f\n",y);
    
};

void cilindro:: mostrar_volume_cilindro(void)
{
    float volume;
    
    volume =  (raio_circulo * lmaior_ret);
      
    printf("Volume do cilindro e : %.2f",volume);
    
};

int main() 
{

    circulo a;
    retangulo b;
    cilindro c;
    
    a.ler_raio();
    a.mostrar_area_circulo();
    a.mostrar_perimetro();
   
    printf("\n\n\n"); 
      
    b.ler_retangulo();
    b.mostrar_area_retangulo();
    
    printf("\n\n\n"); 
    
    c.mostrar_area_cilindro();
    c.mostrar_volume_cilindro();
    getch();

return 0;
}//main

Editado por Prog_Junior
Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,3k
    • Posts
      652,4k
×
×
  • Criar Novo...