C++ Funciones con ejemplos de programas

โšก Resumen inteligente

Funciones en C++ Agrupa las instrucciones relacionadas en bloques reutilizables con nombre que reciben datos de entrada, los procesan y devuelven resultados. Los programas combinan funciones de biblioteca integradas con funciones definidas por el usuario, cada una declarada, definida y llamada para evitar la repeticiรณn de cรณdigo.

  • ๐Ÿงฉ Quรฉ es: Una funciรณn agrupa instrucciones que toman parรกmetros, los procesan y devuelven un valor, ejecutando una tarea comรบn desde un รบnico bloque.
  • ๐Ÿ“š Funciones integradas: El C++ La biblioteca estรกndar incluye funciones listas para usar, como sqrt(), que se pueden llamar directamente sin necesidad de escribirlas.
  • ๐Ÿ› ๏ธ Funciones definidas por el usuario: Los programadores crean sus propias funciones, les dan nombres รบnicos e invocan ese cรณdigo desde cualquier parte del programa.
  • ๐Ÿ“ Declaraciรณn y definiciรณn: Un prototipo declara el tipo de retorno, el nombre y los tipos de argumentos; la definiciรณn proporciona el cuerpo de la funciรณn.
  • ๐Ÿ“ž Llamada y argumentos: Al llamar a una funciรณn, se ejecuta su cuerpo; los argumentos deben coincidir con los parรกmetros en nรบmero y tipo, y se permiten valores predeterminados.
  • ๐Ÿค– Asistencia de IA: GitHub Copilot y asistentes similares proporcionan andamiaje C++ Firmas de funciones, cuerpos y llamadas a partir de un breve comentario.

C++ Funciones

ยฟQuรฉ es una funciรณn en C++?

Una funciรณn en C++ se refiere a un grupo de declaraciones que toma informaciรณn, la procesa y devuelve una salida. La idea detrรกs de una funciรณn es combinar tareas comunes que se realizan repetidamente. Si tiene entradas diferentes, no volverรก a escribir el mismo cรณdigo. Simplemente llamarรก a la funciรณn con un conjunto diferente de datos llamados parรกmetros.

Cada C++ El programa tiene al menos una funciรณn, la funciรณn main(). Puede dividir su cรณdigo en diferentes funciones. Esta divisiรณn debe ser tal que cada funciรณn realice una tarea especรญfica.

Hay muchas funciones integradas en el C++ biblioteca estรกndar. Puede llamar a estas funciones dentro de su programa.

ยฟPor quรฉ utilizar funciones?

Existen numerosos beneficios asociados con el uso de funciones. ร‰stas incluyen:

  • Cada funciรณn reรบne cรณdigo relacionado. Esto facilita que los programadores comprendan el cรณdigo.
  • Las funciones facilitan la programaciรณn al eliminar la repeticiรณn de cรณdigo.
  • Las funciones facilitan la reutilizaciรณn del cรณdigo. Puede llamar a la misma funciรณn para realizar una tarea en diferentes secciones del programa o incluso fuera del programa.

Funciones integradas

In C++Las funciones de la biblioteca estรกn integradas. C++ funciones. Para utilizar estas funciones, simplemente invoque/llame directamente. No es necesario que escriba las funciones usted mismo.

Ejemplo 1:

#include <iostream>
#include <cmath>
using namespace std;
int main() {
	double num, squareRoot;
	cout << "Enter number: ";
	cin >> num;
	squareRoot = sqrt(num);
	cout << "The square root of " << num << " is: " << squareRoot;
	return 0;
}

Salida:

Salida del C++ Ejemplo de la funciรณn sqrt() integrada

Aquรญ hay una captura de pantalla del cรณdigo:

C++ cรณdigo que llama a la funciรณn integrada sqrt() de cmath

Code Explicaciรณn:

  1. Incluya el archivo de encabezado iostream en nuestro programa para usar sus funciones.
  2. Incluya la biblioteca cmath para utilizar sus funciones. Queremos utilizar la funciรณn sqrt() definida en รฉl.
  3. Incluya el espacio de nombres estรกndar en nuestro cรณdigo para usar sus clases sin llamarlo.
  4. Llame a la funciรณn principal(). La lรณgica del programa debe agregarse dentro del cuerpo de esta funciรณn.
  5. Declare dos variables dobles, num y squareRoot.
  6. Imprime algo de texto en la consola. El texto pide al usuario que introduzca un nรบmero.
  7. Leer la entrada del usuario desde el teclado. La entrada se convertirรก en el valor de la variable num.
  8. Llame a la funciรณn de biblioteca sqrt(), que calcula la raรญz cuadrada de un nรบmero. Pasamos el parรกmetro num a la funciรณn, lo que significa que calcularรก la raรญz cuadrada de num. Esta funciรณn estรก definida en la biblioteca cmath.
  9. Imprime el nรบmero ingresado por el usuario, su raรญz cuadrada y algรบn otro texto en la consola.
  10. El programa debe devolver valor una vez completado con รฉxito.
  11. Fin del cuerpo de la funciรณn main().

Funciones definidas por el usuario

C++ permite a los programadores definir sus propias funciones. El propรณsito de la funciรณn es agrupar cรณdigo relacionado. Luego, al cรณdigo se le asigna un identificador รบnico, el nombre de la funciรณn.

La funciรณn se puede llamar/invocar desde cualquier otra parte del programa. Luego ejecutarรก el cรณdigo definido dentro de su cuerpo.

Ejemplo 2:

#include <iostream>
using namespace std;

void sayHello() {
	cout << "Hello!";
}

int main() {

	sayHello();

	return 0;
}

Salida:

Salida del C++ funciรณn sayHello() definida por el usuario

Aquรญ hay una captura de pantalla del cรณdigo:

C++ cรณdigo que define y llama a una funciรณn definida por el usuario

Code Explicaciรณn:

  1. Incluya el archivo de encabezado iostream en nuestro programa para usar sus funciones.
  2. Incluya el espacio de nombres estรกndar en nuestro cรณdigo para usar sus clases sin llamarlo.
  3. Cree una funciรณn definida por el usuario llamada sayHello().
  4. Imprime algo de texto en la consola cuando se llama a la funciรณn sayHello().
  5. Fin del cuerpo de la funciรณn sayHello().
  6. Llame a la funciรณn principal(). La lรณgica del programa debe agregarse dentro del cuerpo de esta funciรณn.
  7. Llama/invoca la funciรณn llamada sayHello().
  8. El programa debe devolver valor una vez completado con รฉxito.
  9. Fin del cuerpo de la funciรณn main().

El compilador debe conocer una funciรณn antes de poder utilizarla.

Declaraciรณn de funciรณn/prototipo

Si define una funciรณn definida por el usuario despuรฉs de la funciรณn main(), la C++ compilador devolverรก un error. La razรณn es que el compilador no conoce los detalles de la funciรณn definida por el usuario. Los detalles incluyen su nombre, los tipos de argumentos y sus tipos de retorno.

In C++La declaraciรณn o prototipo de funciรณn declara una funciรณn sin cuerpo. Esto proporciona al compilador detalles de la funciรณn definida por el usuario.

En la declaraciรณn/prototipo, incluimos el tipo de retorno, el nombre de la funciรณn y los tipos de argumentos. Los nombres de los argumentos no se agregan. Sin embargo, agregar los nombres de los argumentos no genera ningรบn error.

C++ Diagrama de sintaxis de declaraciรณn/prototipo de funciรณn

Definiciรณn de funciรณn

El propรณsito de la declaraciรณn de funciรณn es decirle al C++ compilador sobre el nombre de la funciรณn, el tipo de retorno y los parรกmetros. Una definiciรณn de funciรณn le dice a la C++ compilador sobre el cuerpo de la funciรณn.

C++ Diagrama de estructura de definiciรณn de funciรณn

Sintaxis

return_datatype function_name( parameters) {
   function body 
}

De lo anterior, una definiciรณn de funciรณn tiene el encabezado y el cuerpo de la funciรณn. Aquรญ hay una explicaciรณn de los parรกmetros:

  • return_datatype: Algunas funciones devuelven un valor. Este parรกmetro indica el tipo de dato del valor devuelto. Algunas funciones no devuelven ningรบn valor. En ese caso, el valor de este parรกmetro es nulo.
  • nombre_funciรณn: este es el nombre de la funciรณn. El nombre de la funciรณn y los parรกmetros forman la firma de la funciรณn.
  • Parรกmetros: Se refiere al tipo, el orden y la cantidad de parรกmetros de la funciรณn. Algunas funciones no tienen parรกmetros.
  • cuerpo de la funciรณn: estas son declaraciones que definen lo que harรก la funciรณn.

Llamada de funciรณn

Para que una funciรณn realice la tarea especificada y devuelva un resultado, se debe llamar. Cuando llamas a una funciรณn, ejecuta las declaraciones agregadas dentro de su cuerpo.

Una funciรณn se invoca por su nombre. Si la funciรณn recibe parรกmetros, sus valores deben pasarse durante la llamada. Si la funciรณn no recibe parรกmetros, no se debe pasar ningรบn valor durante la llamada.

C++ Diagrama de sintaxis de llamada a funciรณn

Pasar argumentos

In C++, un argumento/parรกmetro son los datos pasados โ€‹โ€‹a una funciรณn durante su llamada. Los valores deben inicializarse en sus respectivas variables.

Al llamar a una funciรณn, los argumentos deben coincidir en nรบmero. Esto significa que los valores que se pasan deben ser iguales al nรบmero de parรกmetros. Ademรกs, los valores tambiรฉn deben coincidir en tipo con los parรกmetros. Si el primer parรกmetro es un entero, el valor que se le pasa tambiรฉn debe ser un entero.

Se pueden asignar valores predeterminados a los parรกmetros de una funciรณn. Si no se especifica ningรบn valor para el parรกmetro durante la llamada a la funciรณn, se utilizarรก el valor predeterminado.

Ejemplo 3: Cรณmo escribir y llamar a una funciรณn

#include <iostream>
using namespace std;
int addFunc(int, int);
int main() {
	int x, y, sum;
	cout << "Enter two numbers: ";
	cin >> x >> y;
	sum = addFunc(x, y);
	cout <<"The sum of "<<x<< " and " <<y<<" is: "<<sum;
	return 0;
}
int addFunc(int num1, int num2) {
	int addFunc;
	addFunc = num1 + num2;
	return addFunc;
}

Salida:

Salida del C++ Funciรณn addFunc() que devuelve una suma

Aquรญ hay una captura de pantalla del cรณdigo:

C++ cรณdigo que pasa argumentos a la funciรณn addFunc()

Code Explicaciรณn:

  1. Incluya el archivo de encabezado iostream en nuestro programa para usar sus funciones.
  2. Incluya el espacio de nombres estรกndar en nuestro cรณdigo para usar sus clases sin llamarlo.
  3. Declare una funciรณn llamada addFunc() que tome dos parรกmetros enteros. Esto crea el prototipo de funciรณn.
  4. Llame a la funciรณn principal(). La lรณgica del programa debe agregarse dentro del cuerpo de esta funciรณn.
  5. Declare tres variables enteras, x, y y suma.
  6. Imprima un texto en la consola. El texto solicita al usuario que ingrese dos nรบmeros.
  7. Lee la entrada del usuario desde el teclado. El usuario debe ingresar dos nรบmeros para las variables x e y, separados por un espacio.
  8. Llamamos a la funciรณn addFunc() y le pasamos los parรกmetros x e y. La funciรณn operarรก sobre estos parรกmetros y asignarรก la salida a la variable suma.
  9. Imprima los valores de las variables x, y y la suma en la consola junto con otro texto.
  10. La funciรณn debe devolver un valor al completarse exitosamente.
  11. Fin del cuerpo de la funciรณn main().
  12. Definiciรณn de funciรณn. Estamos definiendo la funciรณn addFunc(). Indicaremos quรฉ harรก la funciรณn dentro de su cuerpo, el {}.
  13. Declarar una variable entera llamada addFunc.
  14. Sumando los valores de los parรกmetros num1 y num2 y asignando el resultado a la variable addFunc.
  15. La funciรณn addFunc() deberรญa devolver el valor de la variable addFunc.
  16. Fin del cuerpo de la funciรณn, es decir, definiciรณn de la funciรณn.

Preguntas Frecuentes

La llamada por valor copia el argumento, por lo que los cambios dentro de la funciรณn no afectan al original. La llamada por referencia pasa la variable con un signo de ampersand, lo que permite que la funciรณn modifique directamente el valor de la funciรณn que la llama. C++ Por defecto, se llama por valor.

La sobrecarga de funciones permite que varias funciones compartan un mismo nombre, pero difieran en el nรบmero o tipo de sus parรกmetros. El compilador selecciona la versiรณn correcta a partir de los argumentos que se le pasan, lo que mejora la legibilidad de las operaciones relacionadas.

Una funciรณn inline le pide al compilador que inserte su cuerpo en cada punto de llamada en lugar de realizar una llamada normal. Esto puede reducir la sobrecarga para funciones pequeรฑas, aunque el compilador podrรญa ignorar la sugerencia.

Una funciรณn recursiva se llama a sรญ misma, dividiendo un problema en subproblemas mรกs pequeรฑos. Necesita un caso base que detenga la recursiรณn; de lo contrario, las llamadas se repetirรกn indefinidamente y se producirรก un desbordamiento de la pila. El factorial es un ejemplo clรกsico.

El parรกmetro se pasa como un puntero o una matriz de tamaรฑo y, por lo general, se envรญa su longitud por separado, ya que la matriz se convierte en un puntero. Consulte la secciรณn sobre cรณmo pasar parรกmetros. matrices en C++ funciones para ver ejemplos resueltos completos.

Una funciรณn devuelve un รบnico valor directamente, pero se pueden devolver varios mediante parรกmetros de referencia de salida, como una estructura, un `std::pair`, una `std::tuple` o un `std::vector`. Las vinculaciones estructuradas desempaquetan la tupla devuelta en el punto de llamada.

Sรญ. Los asistentes de codificaciรณn de IA convierten un comentario en lenguaje sencillo en un completo C++ funciรณn, sugiriendo la firma, el cuerpo y el tipo de retorno. Tambiรฉn refactorizan funciones largas, aunque conviene revisar la lรณgica generada.

Copiloto de GitHub autocompletar C++ Analiza las definiciones de funciones, los prototipos y las llamadas a partir de tus comentarios o nombres, propone sobrecargas y elabora borradores de pruebas unitarias. Utiliza encabezados de referencia para contextualizar, pero cada sugerencia requiere revisiรณn.

Resumir este post con: