Função C ++ substituindo

Função C ++ substituindo
Neste artigo, abordaremos a substituição da função na linguagem de programação C ++. C ++ suporta o polimorfismo de tempo de execução. Na superfície da função, a classe infantil redefine a função que já está definida em sua classe pai. Ele permite que o programador forneça funcionalidade específica de classe derivada (mesmo que seja definida na classe base). Agora, veremos alguns exemplos e entenderemos a função que substitui o conceito em C++.

Exemplo 1

Eu defini duas classes no código de exemplo abaixo - uma classe base e uma classe derivada. A classe base tem uma função de membro, eu.e., disp (). O "derivado_class" é herdado do "base_class."A função" disp () "está presente em" base_class "e depois redefinido no" derivado_class.”

Na função main (), um objeto de derivado_class, eu.e., "D" é criado. Em seguida, chamamos a função DISP () no objeto de classe derivado, para que a função na classe derivada seja invocada. A versão da classe base é ignorada aqui. Você pode ver abaixo da saída como - “disp () função na classe derivada.”

#incluir
usando namespace std;
// classe base
classe base_class

público:
Void Disp ()

cout << "disp() function in base class." << endl;

;
//classe derivada
Classe derivada_class: public base_class

público:
Void Disp ()

cout << "disp() function in derived class" << endl;

;
int main ()

Derivado_class d;
d.disp (); // Disp () Função no objeto de classe derivada
retornar 0;

Exemplo 2

Neste exemplo, veremos como chamar deliberadamente a versão da classe base da função através do objeto de classe derivada. Na definição de função de classe derivada, usamos o operador de resolução de escopo [::] para chamar a versão da classe base da função.

#incluir
usando namespace std;
classe base_class

público:
Void Disp ()

cout << "disp() function in base class." << endl;

;
Classe derivada_class: public base_class

público:
Void Disp ()

Base_class :: disp (); // Ligue para a versão da classe base de disp ()

;
int main ()

Derivado_class d;
d.disp ();
retornar 0;

Exemplo 3

Este é outro exemplo de função substituindo. Neste exemplo, criamos uma classe pai - Animal e duas classes derivadas - pato e cachorro. A classe base eu.e., A classe animal, tem um som de função de membro ().

Na aula de classe/criança derivada, eu.e., Cachorro, redefinimos a mesma função, eu.e., som (), para substituir sua definição de classe base. Da mesma forma, na outra classe derivada, eu.e., Pato, redefinimos a mesma função, eu.e., som().

Na função Main (), criamos o objeto "cachorro" de "cachorro" e "pato" de "pato.”Então, agora quando chamamos a função Sound () para cachorro e pato, a versão de classe derivada da função Sound () chamará. Você pode ver a saída do programa, como mostrado abaixo. Assim, com a ajuda da substituição da função, podemos invocar a função específica de classe derivada.

#incluir
usando namespace std;
animal de classe

público:
vazio de som ()

cout << "Animal sound!" << endl;

;
// classe derivada - aula de cães
Cão de classe: animal público

público:
vazio de som ()

cout << "Dog sound - bark." << endl;

;
// classe derivada - classe de pato
Pato de classe: animal público

público:
vazio de som ()

cout << "Duck sound - quack." << endl;

;
int main ()

Cão Cão;
Pato de pato;
cachorro.som(); // som () de cachorro
pato.som(); // som () de pato
retornar 0;

Conclusão

Neste artigo, expliquei a exceção da função em C++. A linguagem C ++ suporta o polimorfismo de tempo de execução. A substituição da função ajuda a alcançar o polimorfismo de tempo de execução em C++. Este artigo analisou o conceito de substituição da função e como alcançar o polimorfismo de tempo de execução usando a substituição da função.