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
- Tres funciones
twicecomparten nombre pero difieren en el tipo:int,doubleystd::string. twice(21)se vincula a la versiónintytwice(1.5)a ladouble, sin casts ni renombres.- La sobrecarga de
std::stringconcatena en vez de multiplicar;static_castjunta todo en unint.
Palabras clave y builtins usados aquí
constdoubleintreturnstatic_cast
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.
Paso 1 de 3 en Funciones y lambdas; paso 10 de 27 en Fundamentos del lenguaje.