C ++

Sobrecarga de função C ++

Sobrecarga de função C ++

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

O que é uma função?

Uma função nada mais é do que um trecho específico de código 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. Funções são usadas para eliminar 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.

Sintaxe da função

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

returnType functionName (parameter_list)



return return_value;

O returnType, parameter_list e a instrução 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 returnType deve ser definido como void.

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. adição int (int a, int b)
  2. adição de flutuação (float f, gloat g)
  3. adição de float (float f, int i)
  4. adição de flutuação (int i, flutuação f)
  5. adição int (int a, int b, int c)
  6. adição de flutuação (flutuação f, flutuação g, flutuação 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, adição_1 (), adição_2 () etc] para cada variação. Por exemplo, você pode ter que escrever adição_1 () para adicionar dois inteiros, adição_2 () para adicionar dois flutuantes, 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 funções a seguir não são consideradas sobrecarregadas porque a única diferença entre elas é o tipo de retorno (o tipo de retorno não é considerado para sobrecarga de função em C ++):

  1. adição int (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, veremos alguns programas de exemplo de trabalho para entender esse conceito mais claramente. Cobriremos os seguintes exemplos:

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

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

Exemplo 1: Função Simples

Neste exemplo, vamos demonstrar como uma função simples pode ser definida e chamada em C++. Vamos definir uma classe chamada “Display” e uma função pública chamada “display ().”A partir da função“ main () ”, chamaremos a função“ display () ”com a ajuda do objeto de classe“ Display ”(d).

#incluir
usando namespace std;
classe Display

público:
void display ()

cout << "Hello World!" << endl;

;
int main ()

Exibir d;
d.exibição();
return 0;

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

Neste exemplo, vamos demonstrar como definir uma função simples de "adição ()" em C++. Vamos definir uma classe chamada “DemoAdd” e uma função pública chamada “adição ().”A partir da função“ main () ”, vamos chamar a função“ Added () ”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 de "adição ()" é capaz de adicionar apenas dois números inteiros.

Para adicionar três inteiros em vez de dois, uma função com um nome diferente, como “adição_1 (),” pode ser definida. 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 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;
classe DemoAdd

público:
adição int (int a, int b)

resultado interno;
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;
return 0;

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

No exemplo anterior, definimos a função “adição ()” para adicionar dois inteiros e retornar o resultado calculado. Agora, neste exemplo, vamos sobrecarregar a função “adição ()” para adicionar três inteiros. Então, seremos capazes de 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;
classe DemoAdd

público:
// Definição da primeira função de adição ()
adição int (int a, int b)

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

// Versão sobrecarregada da função Added ()
adição int (int a, int b, int c)

resultado interno;
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;
return 0;

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

Nas seções anteriores deste artigo, você aprendeu que a sobrecarga de função pode ser realizada com base nas diferenças no tipo de parâmetro. Aqui, nós 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, vamos adicionar duas variáveis ​​do tipo float.

#incluir
usando namespace std;
classe DemoAdd

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

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

// Definição de função sobrecarregada
adição de flutuação (flutuação f, flutuação 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á chamada
res2 = d.adição (f1, f2); // adição (float f, flat g) será chamada
cout << "Result = " << res1 << endl;
cout << "Result = " << res2 << endl;
return 0;

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

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

#incluir
usando namespace std;
classe DemoAdd

público:
// Definição da primeira função da função de adição ()
adição de flutuação (int a, flutuação b)

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

// Definição da função de adição () sobrecarregada
adição de float (float a, int b)

resultado flutuante;
resultado = a + (flutuante) 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á chamada
res2 = d.adição (f1, i1); // adição (float a, int b) será chamada
cout << "Result = " << res1 << endl;
cout << "Result = " << res2 << endl;
return 0;

Conclusão

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

Como baixar e jogar Sid Meier's Civilization VI no Linux
Introdução ao jogo Civilization 6 é uma versão moderna do conceito clássico introduzido na série de jogos Age of Empires. A ideia era bastante simples...
Como instalar e jogar Doom no Linux
Introdução ao Doom A série Doom teve origem nos anos 90 após o lançamento do Doom original. Foi um sucesso instantâneo e, a partir desse momento, a sé...
Vulkan para usuários de Linux
A cada nova geração de placas gráficas, vemos os desenvolvedores de jogos ultrapassarem os limites da fidelidade gráfica e se aproximarem mais do foto...