Sobrecarga da função C ++

Sobrecarga da função C ++

C ++ é uma linguagem de programação de uso geral flexível. Esta linguagem de programação foi criada originalmente por Bjarne Stroustrup, um cientista dinamarquês de computação, em 1985. C ++ suporta polimorfismo, herança e mais. Este artigo abrange a sobrecarga da função para obter o polimorfismo de tempo de compilação na linguagem de programação C ++.

O que é uma função?

Uma função nada mais é do que uma peça de código específica que executa uma tarefa específica com base nas entradas fornecidas e retorna os resultados solicitados ao usuário na forma de uma saída. As funções são usadas para eliminar o código repetitivo em grandes bases de código.

Depois de definir uma função, você pode reutilizá -la posteriormente, no mesmo programa ou em um programa diferente.

Função Sintaxe

Uma função no C ++ tem a seguinte sintaxe:

ReturnType FunctionName (Parameter_list)

..
..
return return_value;

A declaração ReturnType, Parameter_list e Return são opcionais. Uma função em C ++ pode retornar no máximo um valor. Se uma função não retornar nenhum valor, o retorno deve ser definido como vazio.

O que é sobrecarga de função?

Em C ++, várias definições de função podem ter o mesmo nome de função, mas com parâmetros diferentes. Isso é chamado de sobrecarga de função. Com a ajuda do recurso de sobrecarga de função, o polimorfismo de tempo de compilação pode ser alcançado em c++.

As funções podem ser sobrecarregadas das seguintes maneiras:

  1. O número de parâmetros pode ser diferente
  2. O tipo de dados dos parâmetros pode ser diferente
  3. A sequência dos parâmetros pode ser diferente

No entanto, o valor de retorno não é considerado para sobrecarga de função.

As seguintes funções estão sobrecarregadas:

  1. Int Adição (int a, int b)
  2. Adição de flutuação (Float F, Gloat G)
  3. Adição de flutuação (flutuação f, int i)
  4. Adição de flutuação (int i, flutuar F)
  5. Int Adição (int a, int b, int c)
  6. Adição de flutuação (Float F, Float G, Float H)

Como você pode ver, com a ajuda do recurso de sobrecarga de função em C ++, pode haver várias definições/funcionalidades com o mesmo nome de função e no mesmo escopo.

Sem o recurso de sobrecarga de função, você precisaria escrever uma função separada [por exemplo, addérmo_1 (), addérmo_2 () etc] para cada variação. Por exemplo, você pode ter que escrever addten_1 () para adicionar dois números inteiros, addérm_2 () para adicionar dois carros alegóricos e assim por diante. No entanto, como você pode ver acima, o recurso de sobrecarga de função pode ser usado para definir várias variações da função "adição ()", mantendo o mesmo nome de função.

As seguintes funções não são consideradas sobrecarregadas porque a única diferença entre esses dois é o tipo de retorno (o tipo de retorno não é considerado para sobrecarga de funções em C ++):

  1. Int Adição (int a, int b)
  2. Adição de flutuação (int a, int b)

Exemplos

Agora que você entende o conceito de sobrecarga de função, passaremos por alguns programas de exemplo de trabalho para entender esse conceito com mais clareza. Abordaremos os seguintes exemplos:

  1. Exemplo 1: Função simples
  2. Exemplo 2: Função de adição simples
  3. Exemplo 3: Sobrecarga da função (1)
  4. Exemplo 4: Sobrecarga da função (2)
  5. Exemplo 5: sobrecarga de função (3)

Os dois primeiros exemplos explicam como as funções normais funcionam em C ++, enquanto os três últimos exemplos demonstram o recurso de sobrecarga de função em C++.

Exemplo 1: Função simples

Neste exemplo, demonstraremos como uma função simples pode ser definida e chamada em c++. Definiremos uma classe chamada "Display" e uma função pública chamada "Display ()."Da função" Main () ", chamaremos a função" Display () "com a ajuda do objeto de classe" Display "(D).

#incluir
usando namespace std;
exibição de classe

público:
Void Display ()
cout << "Hello World!" << endl;

;
int main ()

Exibição d;
d.mostrar();
retornar 0;

Exemplo 2: Função de adição simples

Neste exemplo, demonstraremos como definir uma função simples de "adição ()" em c++. Definiremos uma classe chamada "Demoadd" e uma função pública chamada "Adicionar ()."Da função" Main () ", chamaremos a função" adição () "com a ajuda do objeto de classe" Demoadd "(D).

Neste exemplo, a implementação atual da função "adição ()" aceita apenas dois parâmetros inteiros. Isso significa que a função atual “adição ()” é capaz de adicionar apenas dois números inteiros.

Para adicionar três números inteiros em vez de dois, uma função com um nome diferente, como "Addition_1 ()", pode ser definido. Em C ++, uma função pode ser sobrecarregada, o que significa que outra definição da função “adição ()” pode ser definida para adicionar três números inteiros e manter o mesmo nome, i.e., "Adição().”No próximo exemplo, veremos como sobrecarregar a função“ adição () ”.

#incluir
usando namespace std;
Demoadd de classe

público:
int adição (int a, int b)
Int resultado;
resultado = a + b;
resultado de retorno;

;
int main ()
Demoadd d;
int i1 = 10, i2 = 20, res;
res = d.adição (i1, i2);
cout << "Result = " << res << endl;
retornar 0;

Exemplo 3: Sobrecarga da função (1)

No exemplo anterior, definimos a função "adição ()" para adicionar dois números inteiros e retornar o resultado calculado. Agora, neste exemplo, sobrecarregaremos a função "adição ()" para adicionar três números inteiros. Portanto, poderemos chamar a função "adição ()" com dois argumentos inteiros, bem como três argumentos inteiros.

Sem o recurso de sobrecarga de função, teríamos que escrever outra função com um nome diferente.

#incluir
usando namespace std;
Demoadd de classe

público:
// Primeira função Definição de adição ()
Int Adição (int a, int b)

Int resultado;
resultado = a + b;
resultado de retorno;

// Versão sobrecarregada da função Addition ()
Int Adição (int a, int b, int c)

Int resultado;
resultado = a + b + c;
resultado de retorno;

;
int main ()

Demoadd d;
int i1 = 10, i2 = 20, i3 = 30, res1, res2;
res1 = d.adição (i1, i2); // adição () com 2 parâmetros
res2 = d.adição (i1, i2, i3); // adição () com 3 parâmetros
cout << "Result = " << res1 << endl;
cout << "Result = " << res2 << endl;
retornar 0;

Exemplo 4: Sobrecarga da função (2)

Nas seções anteriores deste artigo, você aprendeu que a sobrecarga de funções pode ser executada com base em diferenças no tipo de parâmetro. Aqui, sobrecarregamos a função "adição ()" com base no tipo de dados do parâmetro. Na primeira versão da função de adição, adicionaremos duas variáveis ​​do tipo inteiro; E na segunda versão, adicionaremos duas variáveis ​​do tipo flutuante.

#incluir
usando namespace std;
Demoadd de classe

público:
// Primeira definição de adição ()
Int Adição (int a, int b)

Int resultado;
resultado = a + b;
resultado de retorno;

// Definição de função sobrecarregada
Adição de flutuação (Float F, Float G)

resultado flutuante;
resultado = f + g;
resultado de retorno;

;
int main ()
Demoadd d;
int i1 = 10, i2 = 20, res1;
Float F1 = 10.5, f2 = 20.7, res2;
res1 = d.adição (i1, i2); // adição (int a, int b) será chamado
res2 = d.adição (F1, F2); // adição (flutuação f, plana g) será chamada
cout << "Result = " << res1 << endl;
cout << "Result = " << res2 << endl;
retornar 0;

Exemplo 5: sobrecarga de função (3)

Neste exemplo, a função "adição ()" está sobrecarregada com base em diferenças na sequência da lista de parâmetros. Esta é outra maneira de sobrecarregar uma função em c++.

#incluir
usando namespace std;
Demoadd de classe

público:
// Primeira função Definição de adição () função
Adição de flutuação (int a, float b)

resultado flutuante;
resultado = (flutuação) a + b;
resultado de retorno;

// Função sobrecarregada Definição de adição ()
Adição de flutuação (flutuação a, int b)

resultado flutuante;
resultado = a + (float) b;
resultado de retorno;

;
int main ()

Demoadd d;
int i1 = 10;
Float F1 = 10.5, res1, res2;
res1 = d.adição (i1, f1); // adição (int a, float b) será chamado
res2 = d.adição (F1, i1); // adição (float a, int b) será chamado
cout << "Result = " << res1 << endl;
cout << "Result = " << res2 << endl;
retornar 0;

Conclusão

C ++ é uma linguagem de programação de uso geral e flexível que é amplamente utilizada em vários domínios. Esta linguagem de programação suporta o polimorfismo de tempo de compilação e tempo de execução. Neste artigo, você aprendeu a alcançar o polimorfismo em tempo de compilação em C ++ usando o recurso de sobrecarga de função. Este é um recurso muito útil no C ++ que ajuda os programadores a escrever código legível. Também pode ser útil para escrever código reutilizável.