Como implementar sobrecarga e substituição de funções em C ++?



Este artigo apresentará a sobrecarga e substituição de funções em C ++, que são dois dos conceitos mais importantes do OOPS.

C ++ é um na natureza e possui vários recursos. Nesta sessão, discutiríamos como implementar a sobrecarga de função e a substituição de função em C ++.

As dicas a seguir serão abordadas neste artigo,





Continuando com este artigo sobre sobrecarga e substituição de funções em C ++

Sobrecarga de função



Funções com o mesmo nome, mas parâmetros diferentes são permitidas em C ++ e são chamadas Sobrecarga de função . Também é chamado de polimorfismo em tempo de compilação.

Por exemplo:

soma (int a, float b) soma (int a, int b) soma (int a, int b, int c)

Aqui, existem três funções com o mesmo nome, mas a única coisa que as diferencia é que os parâmetros são diferentes em cada uma. Portanto, dependendo dos parâmetros passados, uma função é chamada.



ordenar array c ++ ascendente

Se os tipos de retorno das funções forem diferentes, ele será considerado inválido.

Continuando com este artigo sobre sobrecarga e substituição de funções em C ++

Código de amostra para função sobre carregamento

incluir o uso de namespace std class Adição {public: int add (int n1, int n2) {return n1 + n2} int add (int n1, int n2, int n3) {return n1 + n2}} int main (void) {Addition um cout< 

Resultado

Saída - sobrecarga e substituição de funções em C ++ - Edureka

Explicação

No programa acima, temos duas funções na classe de adição. Ambos nomeados add. Um possui 2 parâmetros e o outro possui 3 parâmetros.

Na função principal, criamos um objeto de adição de classe chamado a. Chamamos as funções add com 2 e 3 parâmetros respectivamente e as funções add são chamadas e realizam a adição.

É assim que ocorre a sobrecarga da função.

Continuando com este artigo sobre sobrecarga e substituição de funções em C ++

Substituição de função

Quando uma classe derivada tem uma função com o mesmo nome de uma função da classe base, ela é chamada Substituição de função. Ambas as funções devem ter os mesmos parâmetros em ambas as classes.

Código de amostra para substituição de função

#include usando namespace std class BaseClass {public: void disp () {cout<<'Parent Class Function' } } class DerivedClass: public BaseClass{ public: void disp() { cout<<'Child Class Function' } } int main() { DerivedClass obj = DerivedClass() obj.disp() return 0 } 

Resultado:

Explicação:

No programa acima, mostramos a função básica, com o mesmo nome na classe derivada e na classe base. Aqui, o objeto é criado a partir da classe derivada, portanto, quando chamamos display, apenas o objeto da classe filha é exibido.

Continuando com este artigo sobre sobrecarga e substituição de funções em C ++

Ordem para realizar a substituição

Considere o código:

#include usando namespace std class BaseClass {public: void disp () {cout<<'Function of Parent Class' } } class DerivedClass: public BaseClass{ public: void disp() { cout<<'Function of Child Class' } } int main() { BaseClass obj = DerivedClass() obj.disp() return 0 } 

Resultado:

Explicação:

No programa acima, mostramos a função básica, com o mesmo nome na classe derivada e na classe base. Aqui, a única diferença em relação ao programa anterior é isso. Criamos o objeto da classe filha. O objeto da classe filha recebe a referência da classe base. Isso também pode ser feito usando outro método,

Sintaxe

Parent_class_name :: function ()

No exemplo acima, nós o usamos como,

arquitetura mvc em java com exemplo
BaseClass :: disp ()

Esta é outra maneira de substituir.

Sobrecarga de função VS Função de substituição

Sobrecarga de função Substituição de função
O escopo é o mesmoO escopo é diferente
As assinaturas devem ser diferentes (ex: parâmetro)As assinaturas devem ser as mesmas
Número de funções de sobrecarga possíveisApenas uma função de substituição possível
Pode ocorrer sem herançaOcorre principalmente devido à herança

Assim, chegamos ao fim deste artigo sobre ‘Sobrecarga e substituição de funções em C ++’. Se você deseja saber mais, confira o pela Edureka, uma empresa de aprendizagem online confiável. O curso de certificação e treinamento em Java J2EE e SOA da Edureka foi projetado para treiná-lo tanto para conceitos básicos quanto avançados de Java, juntamente com várias estruturas Java como Hibernate e Spring.

Tem alguma questão para nós? Mencione isso na seção de comentários deste blog e entraremos em contato com você o mais breve possível.