Manufaturação industrial
Internet das coisas industrial | Materiais industriais | Manutenção e reparo de equipamentos | Programação industrial |
home  MfgRobots >> Manufaturação industrial >  >> Industrial programming >> Linguagem C

Argumentos Padrão de Função em C++: Como Funcionam e Boas Práticas

Argumentos Padrão de Função em C++

Explore como atribuir valores padrão a parâmetros de função em C++, com exemplos passo a passo e diretrizes práticas.

Em C++, parâmetros de função podem receber valores padrão. Quando uma chamada omite um argumento, o compilador substitui o padrão. Se um argumento é fornecido, o padrão é ignorado.


Como Argumentos Padrão Funcionam

Argumentos Padrão de Função em C++: Como Funcionam e Boas Práticas

Considere a seguinte ilustração:

  1. temp() usa ambos os padrões.
  2. temp(6) sobrescreve o primeiro parâmetro; o segundo permanece padrão.
  3. temp(6, -2.3) fornece valores para ambos, sobrescrevendo ambos os padrões.
  4. Chamar temp(3.4) passa erroneamente um double para parâmetro int. O compilador trunca o valor para 3, demonstrando que os tipos de argumentos devem corresponder à ordem de declaração.

Exemplo: Usando Argumentos Padrão

#include <iostream> using namespace std; // Protótipo com argumentos padrão void exibir(char = '*', int = 3); int main() { int contador = 5; cout << "Nenhum argumento passado: "; exibir(); // usa '*', 3 cout << "Primeiro argumento passado: "; exibir('#'); // usa '#', 3 cout << "Ambos argumentos passados: "; exibir('$', contador); // usa '$', 5 return 0; } void exibir(char c, int contador) { for(int i = 1; i <= contador; ++i) { cout << c; } cout << endl; } 

Saída

Nenhum argumento passado: *** Primeiro argumento passado: ### Ambos argumentos passados: $$$$$

O programa se comporta da seguinte forma:

  1. exibir() usa os padrões c='*' e contador=3.
  2. exibir('#') sobrescreve apenas o primeiro argumento; o segundo permanece padrão.
  3. Quando ambos argumentos são fornecidos, padrões são ignorados.

Definir padrões diretamente na definição da função também é válido e frequentemente mais claro:

#include <iostream> using namespace std; void exibir(char c = '*', int contador = 3) { for(int i = 1; i <= contador; ++i) { cout << c; } cout << endl; } int main() { int contador = 5; cout << "Nenhum argumento passado: "; exibir(); cout << "Primeiro argumento passado: "; exibir('#'); cout << "Ambos argumentos passados: "; exibir('$', contador); return 0; } 

Pontos-Chave para Lembrar

  1. Após um parâmetro receber um valor padrão, todo parâmetro seguinte também deve ter um padrão. Por exemplo:
    // Inválido void somar(int a, int b = 3, int c, int d); // Válido void somar(int a, int c, int b = 3, int d = 4); 
  2. Quando padrões são especificados na definição em vez do protótipo, a definição deve preceder qualquer chamada. Caso contrário, o compilador emitirá erro.

Linguagem C

  1. Dominando Namespaces em C#: Organização, Escopo e Boas Práticas
  2. Dominando Operadores em C++: Guia Completo com Exemplos Práticos
  3. Comentários em C++: Boas Práticas para Código Legível e Manutenível
  4. Como Passar Arrays para Funções em C++: Guia Prático
  5. Dominando Templates de Classe em C++: Um Guia Prático
  6. Dominando Operadores em Programação C: Um Guia Abrangente
  7. Quatro Padrões Comprovados para Funções Definidas pelo Usuário em C
  8. Domine a Programação em C: Tutorial Completo para Iniciantes
  9. Dominando Funções em C: Estrutura, Declaração e Boas Práticas
  10. Dominando Argumentos Variáveis em C: Guia Prático