Introdução à sobrecarga de funções em C ++
A programação C ++ possui recursos incríveis e um dos recursos mais importantes é a sobrecarga de funções. Significa um código com mais de uma função com o mesmo nome, mas com diferentes listas de argumentos. A lista de argumentos significa a sequência dos argumentos e os tipos de dados dos argumentos. A sobrecarga de função é usada para executar operações semelhantes. É usado para melhorar a legibilidade do código. Redefiniu a função porque não há sentido em criar duas funções diferentes para executar o mesmo trabalho repetidamente.
Sintaxe
void add(int a, int b);
void add(float a, float b);
Ambos são da mesma função, mas os argumentos são diferentes. Portanto, caso você deseje realizar adição em diferentes tipos de dados usando a mesma função, o recurso de sobrecarga de funções pode ser usado na programação com C ++.
Aqui está o código C ++ para demonstrar a sobrecarga de funções na programação C ++:
Código:
#include
using namespace std;
void print(int x) (
cout << " Here is the integer " << x << endl;
)
void print(double y) (
cout << " Here is the float " << y << endl;
)
void print(char const *v) (
cout << " Here is the character* " << v << endl;
)
int main() (
print(20);
print(20.30);
print("three");
return 0;
)
Maneiras diferentes de sobrecarregar a função em C ++
Existem várias maneiras de sobrecarregar uma função na linguagem de programação C ++. Vamos ver como podemos fazer isso:
1. Sobrecarga de Função
Use para aumentar a legibilidade do código na programação. Pode ser definido como sobrecarregando 2 ou mais funções com o mesmo nome, mas parâmetros diferentes são conhecidos como Sobrecarga de funções.
Sintaxe:
DataType Functionname (parameter list)
(
Function body
)
Exemplo 1
Aqui está o código C ++ para demonstrar a sobrecarga de funções alterando o número de argumentos na programação C ++:
Código:
#include
using namespace std;
class Calculate (
public:
static int addition(int a, int b)(
return a + b;
)
static int addition(int a, int b, int c)
(
return a + b + c;
)
);
int main(void) (
// Declaration class object to call function
Calculate S;
cout< cout< return 0;
)#include
using namespace std;
class Calculate (
public:
static int addition(int a, int b)(
return a + b;
)
static int addition(int a, int b, int c)
(
return a + b + c;
)
);
int main(void) (
// Declaration class object to call function
Calculate S;
cout< cout< return 0;
)#include
using namespace std;
class Calculate (
public:
static int addition(int a, int b)(
return a + b;
)
static int addition(int a, int b, int c)
(
return a + b + c;
)
);
int main(void) (
// Declaration class object to call function
Calculate S;
cout< cout< return 0;
)
Exemplo 2
Aqui está o código C ++ para demonstrar a sobrecarga de funções, tendo diferentes tipos de argumentos na programação C ++:
Código:
#include
using namespace std;
class Calculate (
public:
int addition(int a, int b)(
return a + b;
)
float addition(float a, float b, float c)
(
return a + b + c;
)
);
int main(void) (
// Declaration class object to call function
Calculate S;
cout< cout< return 0;
)#include
using namespace std;
class Calculate (
public:
int addition(int a, int b)(
return a + b;
)
float addition(float a, float b, float c)
(
return a + b + c;
)
);
int main(void) (
// Declaration class object to call function
Calculate S;
cout< cout< return 0;
)#include
using namespace std;
class Calculate (
public:
int addition(int a, int b)(
return a + b;
)
float addition(float a, float b, float c)
(
return a + b + c;
)
);
int main(void) (
// Declaration class object to call function
Calculate S;
cout< cout< return 0;
)
2. Sobrecarga do Operador
Existem vários operadores internos na linguagem de programação C ++. Um codificador pode usar esses operadores para sobrecarregar ou redefinir esses operadores internos. É um polimorfismo em tempo de compilação no qual um operador sobrecarregado é usado para executar tarefas em tipos de dados definidos pelo usuário. Quase muitos operadores podem estar sobrecarregados na linguagem de programação C ++.
Sintaxe:
ReturnType Classname :: operator OperatorSymbol (parameter list)
(
Function body
)
Exemplo 1
Aqui está o código C ++ para demonstrar a sobrecarga do operador na programação C ++:
Código:
#include
using namespace std;
class Demo
(
private:
int count;
public:
Demo(): count(5)()
void operator ++()
(
count = count+1;
)
void DisplayCount() ( cout<<"The Count is : "< );
int main()
(
Demo d;
// this calls void operator ++()" function
++d;
d.DisplayCount();
return 0;
)#include
using namespace std;
class Demo
(
private:
int count;
public:
Demo(): count(5)()
void operator ++()
(
count = count+1;
)
void DisplayCount() ( cout<<"The Count is : "< );
int main()
(
Demo d;
// this calls void operator ++()" function
++d;
d.DisplayCount();
return 0;
)
Exemplo 2
Vamos ver como a sobrecarga de funções realmente funciona? na programação através de exemplos de codificação C ++:
Código:
#include
using namespace std;
void show(int);
void show(float);
void show(int, float);
int main() (
int x = 10;
float y = 255.5;
show(x);
show(y);
show(x, y);
return 0;
)
void show(int variable) (
cout << "The Integer number is : " << variable << endl;
)
void show(float variable) (
cout << "The Float number is: " << variable << endl;
)
void show(int variable1, float variable2) (
cout << "The Integer number is: " << variable1;
cout << " And The Float number is:" << variable2;
)
Código Explicação:
No código acima, criamos uma função para mostrar a saída de diferentes tipos de dados, mas se você notar que o nome das funções é o mesmo e os argumentos são diferentes. Em seguida, inicializamos uma variável chamada x e atribuímos a ela um valor e algum valor atribuído à variável flutuante y também. Após atribuir valores às variáveis x e y, chamamos a função mostrada para exibir o valor de entrada na tela de saída.
Como você pode ver os nomes das funções, o argumento é diferente nos três casos. Primeiro, chamamos a função show only variable integer, depois chamamos show function para exibir a saída apenas da variável float. Finalmente, chamamos a função show, que possui variáveis inteiras e flutuantes para mostrar a saída na tela do display como saída.
É assim que realmente funciona o recurso de sobrecarga de funções na linguagem de programação C ++. Dependendo dos diferentes tipos de dados, a mesma função pode ser usada para executar um conjunto semelhante de operações.
Exemplo 3
Aqui está o código C ++ para demonstrar a sobrecarga de funções na programação C ++:
Código:
#include
using namespace std;
class X
( int x;
public:
X()()
X(int j)
(
x=j;
)
void operator+(X);
void display();
);
void X :: operator+(X a)
(
int n = x+ax;
cout<<"The addition of two objects is : "< )
int main()
(
X a1(505);
X a2(409);
a1+a2;
return 0;
)#include
using namespace std;
class X
( int x;
public:
X()()
X(int j)
(
x=j;
)
void operator+(X);
void display();
);
void X :: operator+(X a)
(
int n = x+ax;
cout<<"The addition of two objects is : "< )
int main()
(
X a1(505);
X a2(409);
a1+a2;
return 0;
)
Código Explicação:
No código acima, criamos uma classe X e criamos uma variável inteira x e declaramos dois construtores para que não precisemos criar objetos para chamar a função, pois o construtor inicializa automaticamente um objeto de classe recém-criado logo após a alocação de memória . Duas funções são criadas operador e exibidas para mostrar a adição de dois objetos usando conceitos de sobrecarga de função em nosso código.
Conclusão
Em conclusão, o recurso de sobrecarga de função no C ++ pode ser usado de várias maneiras para aumentar a legibilidade do código. Ajuda a economizar espaço de memória e tempo de compilação ao programar com a linguagem C ++. O conceito de polimorfismo em tempo de compilação também é introduzido através dos conceitos de sobrecarga do operador, onde quase todos os operadores podem ser sobrecarregados.
Artigos recomendados
Este é um guia para a Função Sobrecarga em C ++. Aqui discutimos as várias maneiras de sobrecarregar a função em C ++, juntamente com diferentes exemplos e implementação de código. Você também pode consultar o seguinte artigo para saber mais -
- Como a função recursiva funciona em C ++?
- Os três principais tipos de dados em C ++
- Exemplos de sobrecarga e substituição em C ++
- Matriz de seqüência de caracteres em C ++ uma matriz de várias seqüências de caracteres