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

(resolvido) herança de metodos


hmoleman

Pergunta

Quando herdo métodos, esses metodos tem que ser declarados na classe filha ou já posso sair usando.

ex:

veiculo:       -->          carro:
andar()                      andar()
parar()                     parar()
                           c.anda()
                           c.para()
ou

veiculo:       -->          carro:
andar()                      c.andar()
parar()                     c.parar()

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

3 respostass a esta questão

Posts Recomendados

  • 0

se você declarar como public na classe pai e herdar-la tb como public, você pode sair usando sim. exemplo:

#include <stdio.h>
#include <conio.h>

class base
{
      public : base()
      {
            /* Código */
      }
      
      public : void metodo()
      {
            printf("base\n");
      }
};

class derivada : public base
{
      public : derivada() : base()
      {
      }
}

int main(void)
{
    derivada x = derivada();
    
    x.metodo(); //Vai aparecer escrito "base".

    getch();
}[/code] presta atencao nesse public aqui: class derivada : public base ai se você declarar um objeto da classe derivada, você consegue usar o metodo metodo() normalmente. agora se você declarar o mesmo metodo metodo() tb na classe derivada, isso é um override, ou seja, se você tentar executar esse metodo, ele vai executar somente o codigo da classe filha. exemplo:
[code]#include <stdio.h>
#include <conio.h>

class base
{
      public : base()
      {
            /* Código */
      }
      
      public : virtual void metodo()
      {
            printf("base\n");
      }
};

class derivada : public base
{
      public : derivada() : base()
      {
      }
      
      public : void metodo()
      {
             printf("filha\n");
      }
};

int main(void)
{
    derivada x = derivada();
    
    x.metodo(); //Vai aparecer escrito "filha".
    
    getch();
}

Link para o comentário
Compartilhar em outros sites

  • 0

Só uma dica, não precisa ficar colocando public em todas as funções e variáveis. Isso funciona perfeitamente, por exemplo:

class base
{
public: 
      base()
      {
            /* Código */
      }
      
      virtual void metodo()
      {
            printf("base\n");
      }
};

class derivada : public base
{
public:
      derivada() : base()
      {
      }
      
      void metodo()
      {
             printf("filha\n");
      }
};

Abraços.

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,1k
    • Posts
      651,8k
×
×
  • Criar Novo...