La diferencia entre argumentos y parámetros de funciones en C++

Jinku Hu 12 octubre 2023
La diferencia entre argumentos y parámetros de funciones en C++

Este artículo explicará las diferencias entre los argumentos y los parámetros de las funciones en C++.

La anatomía de las funciones en C++

Las funciones son el bloque de construcción común de cualquier programa relativamente sofisticado. Permiten definir las rutinas recurrentes en el programa como bloques separados y llamarlas cuando sea necesario ejecutar el código correspondiente. Dividir un programa en múltiples funciones hace que el programa sea más modular y fácil de mantener y comprender. En consecuencia, estos programas generalmente son más fáciles de probar y depurar.

Las funciones suelen tener nombres que las identifican de forma única; sin embargo, algunos conceptos como la sobrecarga de funciones permiten al programador definir múltiples funciones con el mismo nombre; Exploraremos esta característica en los párrafos posteriores. Las expresiones lambda también se incluyen en la combinación, lo que proporciona una forma de definir objetos de función sin nombre. La suma de diferentes declaraciones en el bloque de funciones se denomina cuerpo de función. Las funciones también tienen un tipo de retorno que representa el tipo de valor devuelto a la persona que llama.

Otra parte crítica de la función es una lista de parámetros que denotan las variables declaradas como parte de la firma de la función. El llamador generalmente pasa algunos valores concretos para inicializar estas variables en el alcance de la función. Los últimos valores se denominan argumentos y se dice que son inicializadores de los parámetros de la función. Aún así, los términos - parámetros y argumentos pueden usarse indistintamente en algunos contextos.

En el programa de ejemplo a continuación, le mostramos una función llamada - printVector, que tiene solo un parámetro (llamado vec) definido en su firma. Cuando se invoca el proceso en la función main, se le pasa el argumento vec1. Una vez que la ejecución se mueve al cuerpo de la función printVector, el parámetro vec se inicializa con el valor correspondiente.

#include <iostream>
#include <vector>

using std::cout;
using std::endl;
using std::vector;

template <typename T>
void printVector(const vector<T> &vec) {
  for (auto &i : vec) {
    cout << i << "; ";
  }
  cout << endl;
}

int main() {
  vector<int> vec1{11, 82, 39, 72, 51, 32, 91};

  printVector(vec1);

  return EXIT_SUCCESS;
}

Producción :

11; 82; 39; 72; 51; 32; 91;

Como se mencionó en el capítulo anterior, C++ admite el concepto de sobrecarga de funciones, lo que permite al programador definir múltiples funciones con el mismo nombre. Sin embargo, estas funciones deben diferir por el número de argumentos que aceptan o los tipos de argumentos.

El siguiente programa a continuación demuestra el uso básico de funciones sobrecargadas que multiplica dos números del tipo int o double, respectivamente.

#include <iostream>

using std::cout;
using std::endl;

int multiply(int x, int y) { return x * y; }

double multiply(double x, double y) { return x * y; }

int main() {
  int i1 = 10;
  double d1 = 0.1;

  cout << multiply(i1, i1 + 1) << endl;
  cout << multiply(d1, d1 + 1) << endl;

  return EXIT_SUCCESS;
}

Producción :

110
0.11
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