Sobreposição de função em C++ explicada

Publicados: 2022-11-09

Índice

O que é uma função?

Uma função é uma parte que pertence a um código para executar uma tarefa estipulada em um programa. É importante ter conhecimento em primeira mão sobre herança para aprender que a implementação de herança de substituição de função é um mandato para essa função. Uma função C++ é uma coleção de instruções reunidas para executar uma tarefa. Todos os programas têm uma função main() e programas específicos têm funções adicionadas. A declaração da função envia o nome da função, o tipo de retorno e os parâmetros ao compilador para determinar o corpo da função pela definição da função. Uma função pode ser um procedimento, um método ou uma sub-rotina, e todas as funções C++ consistem em um cabeçalho e um corpo.

Sintaxe de uma função C++:-

return_type function_name(lista de parâmetros) {

corpo da função

}

Componentes :-

  • Tipo de retorno- Isso denota o tipo de valor de retorno da função.
  • Nome da Função- Representa o nome da função que compõe a assinatura da função e a lista de parâmetros.
  • Parâmetros- Este é um espaço reservado para o valor que a função retorna. Quando uma função é chamada, o valor passado para o parâmetro é conhecido como parâmetro real.
  • Corpo da Função- O corpo da função compreende a lista de instruções que definem a tarefa da função.

Como chamar uma função

Uma função deve ser invocada ou chamada antes do uso, após o que o controle é transferido para ela para executar a tarefa necessária. A instrução return devolve o controle ao programa principal depois disso. Os parâmetros e o nome da função devem passar para chamar uma função. Os argumentos podem ser passados ​​para uma função de várias maneiras ao chamá-la. Os tipos de chamada são os seguintes:-

  • Chamada por valor
  • Chamada por referência
  • Chamada por ponteiro

Aprenda cursos de desenvolvimento de software online das melhores universidades do mundo. Ganhe Programas PG Executivos, Programas de Certificado Avançado ou Programas de Mestrado para acelerar sua carreira.

Sobreposição de funções em C++

A substituição C++ é uma ideia através da qual uma função com o mesmo nome é definida. A função da classe base na substituição é redefinida dentro da classe derivada, que substitui a função da classe base. A implementação do polimorfismo em tempo de execução também pode ser definida como substituição de função. Aqui, o tempo de execução do programa substitui a função.

A substituição de função permite que os programadores usem uma função na classe filha encontrada em sua classe pai. Como resultado, a classe filha herda todos os membros de dados e as funções de membro encontradas na classe pai. Para substituir qualquer funcionalidade de classe filha, você deve implementar a substituição de função. A substituição de função refere-se a fazer uma nova versão da função da classe pai dentro da classe filha.

Sintaxe para implementar substituição de função em C++

Quando a mesma função definida na classe baseada e na classe derivada é chamada usando o objeto da classe derivada, ela executa a função da classe derivada. Esta é a substituição de função em C++.

Abaixo está a sintaxe mais usada para a implementação da função sobrescrevendo em C++:

// Programa C++ para demonstração de substituição de função

#include <iostream>

usando o namespace std;

classe Base {

público:

void imprimir(){

cout << “Função Base” << endl;

}

};

class Derivado: public Base {

público:

void imprimir(){

cout << “Função Derivada” << endl;

}

};

int main(){

Derivado derivado1;

derivado1.impressão();

retornar 0;

}

Resultado

Função derivada

Isso redefine a função da classe base dentro da classe derivada. Portanto, o tipo de retorno, parâmetros_da_função e nome_da_função devem ser os mesmos para obter a substituição da função.

Cursos e artigos populares sobre engenharia de software

Programas populares
Programa PG Executivo em Desenvolvimento de Software - IIIT B Programa de Certificado Blockchain - PURDUE Programa de Certificado de Segurança Cibernética - PURDUE Mestrado em Ciência da Computação - IIIT B
Outros artigos populares
Salário de Engenheiro de Nuvem nos EUA 2021-22 Salário do AWS Solution Architect nos EUA Salário de desenvolvedor back-end nos EUA Salário de Desenvolvedor Front-End nos EUA
Salário de desenvolvedor web nos EUA Perguntas da entrevista do Scrum Master em 2022 Como iniciar uma carreira em segurança cibernética em 2022? Opções de carreira nos EUA para estudantes de engenharia

Como a substituição de função funciona em C++

As OOPs devem permitir que classes derivadas herdem os recursos da classe pai. A substituição de função permite que os programadores substituam qualquer funcionalidade dentro de uma classe em uma classe derivada específica. Isso é especialmente útil quando uma classe filha precisa de sua variante de funcionalidade.

Abaixo está um exemplo simples de substituição de função em C++ para sua melhor compreensão:

#include <iostream>

usando o namespace std;

classe parent_class

{

público:

impressão virtual void()

{

cout << “\nEste é o método print()”

” de BaseClass”;

}

};

class derivada_class: public parent_class

{

público:

// Sobreposição de função – nova definição de

// método de impressão da classe base

void imprimir()

{

cout << “\nEste é o método print()”

” da Classe Derivada”;

}

};

// Código do driver

int main()

{

classe_derivada obj;

obj.print();

}

Acesse a função substituída em C++

O operador de resolução de escopo é usado para acessar a função substituída da classe base em C++. A função substituída também pode ser acessada usando um ponteiro de classe base para apontar para um objeto da classe derivada e, em seguida, chamar a função do ponteiro.

// Programa C++ para acessar a função substituída

// em main() usando o operador de resolução de escopo ::

#include <iostream>

usando o namespace std;

classe Base {

público:

void imprimir(){

cout << “Função Base” << endl;

}

};

class Derivado: public Base {

público:

void imprimir(){

cout << “Função Derivada” << endl;

}

};

int main(){

Derivado derivado1, derivado2;

derivado1.impressão();

// acessa a função print() da classe Base

derivado2.Base::print();

retornar 0;

}

Resultado

Função derivada

Função básica

A instrução na sintaxe; derivado2.Base::print(); dá acesso à função print() da classe Base.

Chamar função substituída da classe derivada

Você pode usar herança para alterar o comportamento de uma função. No entanto, às vezes, você não precisa alterar ou substituir a funcionalidade da classe base/pai. Em vez disso, mais funcionalidades devem ser adicionadas.

Abaixo está um exemplo de como usar a função de substituição de chamada de uma classe derivada.

// Programa C++ para chamar a função substituída

// de uma função membro da classe derivada

#include <iostream>

usando o namespace std;

classe Base {

público:

void imprimir(){

cout << “Função Base” << endl;

}

};

class Derivado: public Base {

público:

void imprimir(){

cout << “Função Derivada” << endl;

// chama a função substituída

Base::imprimir();

}

};

int main(){

Derivado derivado1;

derivado1.impressão();

retornar 0;

}

Resultado

Função derivada

Função básica

Neste programa, a função substituída foi chamada dentro da classe Derived.

class Derivado: public Base {

público:

void imprimir(){

cout << “Função Derivada” << endl;

Base::imprimir();

}

};

O código Base::print();, chama a função substituída dentro da classe Derived.

Sobrecarga de função vs. Sobrecarga de função

Você pode obter sobrecarga de função em tempo de compilação, geralmente feito dentro das classes derivadas e base. Ele fornece mais de uma definição de função alterando a assinatura de cada função, como o tipo de dados ou o tipo de retorno dos parâmetros.

A substituição de função, por outro lado, pode ser alcançada em tempo de execução. A classe base na substituição é redefinida na classe derivada com os mesmos parâmetros e o mesmo tipo de retorno. Vamos descobrir quais outros recursos tornam essas duas funções diferentes.

Substituindo Sobrecarga
Herança Requer herança de classe Não requer herança de classe
Assinatura de Função Difere na assinatura no tipo ou no número de parâmetros. As assinaturas de função permanecem as mesmas
Escopo da Função As funções diferem em escopo Possui o mesmo escopo
Comportamento da Função Necessário quando uma função de classe derivada é executada de forma diferente ou com funcionalidade adicionada à função de classe base. Necessário quando funções com o mesmo nome têm comportamentos diferentes com base nos parâmetros fornecidos.

Conclusão

A substituição de função em C++ ajuda a economizar espaço de memória e a manter a legibilidade e a consistência de qualquer código. Também ajuda a tornar o código reutilizável facilmente. Escusado será dizer que o conhecimento sobre substituição de função é uma habilidade importante para possuir se você vê um futuro para si mesmo na programação.

Se você deseja ingressar em um curso confiável e premium para iniciar sua carreira neste campo, pode se inscrever para o Mestrado em Ciência da Computação do upGrad no upGrad. Alguns dos principais destaques deste programa são os seguintes: -

  • Aprenda MERN Stack, Microsserviços, JavaScript, etc.
  • Aprendizado completo no Cloud Labs
  • Experimente as ferramentas usadas no Netflix, LinkedIn, Facebook, etc.
  • Seja habilidoso em mais de 10 ferramentas e linguagens de programação
  • Suporte ao aluno 24 horas por dia, 7 dias por semana

Como a substituição de função acontece?

A substituição da função C++ acontece via herança, ou seja, quando uma classe herda outra classe. Quando a classe derivada e a classe base possuem funções de membro com o mesmo tipo de retorno, nome e lista de argumentos, ela é chamada de substituição de função.

Qual é a diferença entre sobrecarga de função e substituição de função em C++?

A substituição de função acontece quando as funções possuem o mesmo protótipo nas classes base e derivadas. A sobrecarga de função é executada quando mais de uma função com um nome semelhante existe em uma classe.

Quais são os recursos da sobrecarga de funções em C++?

A sobrecarga de funções em C++ é usada principalmente para melhorar a legibilidade do código. Os programadores o usam para não precisar memorizar vários nomes de funções. Classes com várias funções, parâmetros diferentes e o mesmo nome são chamadas de Sobrecarregadas.