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:
No entanto, o valor de retorno não é considerado para sobrecarga de função.
As seguintes funções estão sobrecarregadas:
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 ++):
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:
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.