Usar parámetros predeterminados para funciones en C++

Jinku Hu 12 octubre 2023
  1. Usar parámetros predeterminados para definir una función en C++
  2. Utilice parámetros predeterminados para implementar el constructor de clases en C++
Usar parámetros predeterminados para funciones en C++

Este artículo explicará varios métodos de cómo usar parámetros predeterminados para funciones en C++.

Usar parámetros predeterminados para definir una función en C++

El concepto de parámetros predeterminados hace posible tener valores de argumento predeterminados especificados en una definición de función utilizada en caso de que el usuario no pase ningún argumento en su lugar. Por lo tanto, las funciones pueden tener argumentos opcionales, que internamente pueden usar algún valor predeterminado para inicializar algunos objetos durante el bloque de funciones. Los parámetros predeterminados se especifican en un prototipo de función después de cada nombre de argumento utilizando el símbolo = y el valor correspondiente. Por ejemplo, el siguiente fragmento de código implementa una plantilla de función sumNumbers que puede sumar cuatro números como máximo. Sin embargo, el usuario no está obligado a proporcionar los cuatro valores. Por el contrario, solo dos números enteros son suficientes para la operación.

#include <iostream>
#include <string>
#include <utility>
#include <vector>

using std::cin;
using std::cout;
using std::endl;
using std::string;
using std::vector;

template <typename T>
T sumNumbers(T x, T y, T z = 0, T w = 0) {
  return (x + y + z + w);
}

int main() {
  vector<int> vec = {1, 4, 8, 16, 20, 24, 28, 32};

  for (size_t i = 0; i < vec.size(); ++i) {
    cout << sumNumbers(vec[i], vec[i + 1]) << ": ";
  }
  cout << endl;

  for (size_t i = 0; i < vec.size(); ++i) {
    cout << sumNumbers(vec[i], vec[i + 1], vec[i + 2]) << ": ";
  }
  cout << endl;

  for (size_t i = 0; i < vec.size(); ++i) {
    cout << sumNumbers(vec[i], vec[i + 1], vec[i + 2], vec[i + 3]) << ": ";
  }
  cout << endl;

  return EXIT_SUCCESS;
}

Producción :

5: 12: 24: 36: 44: 52: 60: 32
13: 28: 44: 60: 72: 84: 60: 32:
29: 48: 68: 88: 104: 84: 60: 4145:

Utilice parámetros predeterminados para implementar el constructor de clases en C++

Otro escenario útil donde se puede utilizar el concepto de parámetros predeterminados es el constructor de clases. A veces, los constructores de clases pueden necesitar inicializar algunos miembros de datos con valores predeterminados si el usuario no proporciona los argumentos. Podemos implementar un constructor con los parámetros predeterminados, que llama a otro constructor con valores predeterminados, como se demuestra en el siguiente código de ejemplo.

#include <iostream>
#include <string>
#include <utility>
#include <vector>

using std::cin;
using std::cout;
using std::endl;
using std::string;
using std::vector;

class MyClass {
  string name;
  int height;
  int width;

 public:
  MyClass(string s, int h, int w) : name(std::move(s)), height(h), width(w) {}
  MyClass() : MyClass("", 0, 0) {}
  explicit MyClass(string s) : MyClass(std::move(s), 0, 0) {}

  void printMyClass() {
    cout << "name: " << name << endl
         << "height: " << height << endl
         << "width: " << width << endl;
  }
};

int main() {
  MyClass M1;
  MyClass M2("Jay", 12, 103);

  M1.printMyClass();
  cout << endl;
  M2.printMyClass();

  return EXIT_SUCCESS;
}

Producción :

name:
height: 0
width: 0


name: Jay
height: 12
width: 103
Autor: Jinku Hu
Jinku Hu avatar Jinku Hu avatar

Founder of DelftStack.com. Jinku has worked in the robotics and automotive industries for over 8 years. He sharpened his coding skills when he needed to do the automatic testing, data collection from remote servers and report creation from the endurance test. He is from an electrical/electronics engineering background but has expanded his interest to embedded electronics, embedded programming and front-/back-end programming.

LinkedIn Facebook

Artículo relacionado - C++ Function