typestar

Sobrecarga de funciones en C++

Un nombre, tres firmas: el compilador elige el twice correcto solo por el tipo del argumento.

#include <string>

// One name, three signatures: the compiler picks by argument type.
int twice(int n) { return n * 2; }
double twice(double x) { return x * 2.0; }
std::string twice(const std::string& s) { return s + s; }

int overload_demo() {
    int a = twice(21);
    double b = twice(1.5);
    std::string c = twice(std::string("echo"));
    return a + static_cast<int>(b) + static_cast<int>(c.size());
}

Cómo funciona

  1. Tres funciones twice comparten nombre pero difieren en el tipo: int, double y std::string.
  2. twice(21) se vincula a la versión int y twice(1.5) a la double, sin casts ni renombres.
  3. La sobrecarga de std::string concatena en vez de multiplicar; static_cast junta todo en un int.

Palabras clave y builtins usados aquí

El intento, en números

Líneas
13
Caracteres a escribir
394
Tokens
115
Ritmo de tres estrellas
75 tpm

Al ritmo de tres estrellas de 75 tokens por minuto, este intento toma unos 92 segundos.

Escribe este fragmento

Paso 1 de 3 en Funciones y lambdas; paso 10 de 27 en Fundamentos del lenguaje.

← Anterior Siguiente →