Jump to content
Fórum Script Brasil
  • 0

Herança de Classe em C.


Binder

Question

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 to comment
Share on other sites

2 answers to this question

Recommended Posts

  • 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

Edited by Prog_Junior
Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.



  • Forum Statistics

    • Total Topics
      152.2k
    • Total Posts
      652k
×
×
  • Create New...