Sobrecarga de funções e alternativas C
C++ escolhe overload pelos parâmetros; C precisa de nomes distintos ou dispatch genérico.
O que é Sobrecarga de funções e alternativas C?
C++ escolhe overload pelos parâmetros; C precisa de nomes distintos ou dispatch genérico.
Use uma operação com vários tipos.
Pontos importantes
- Entenda primeiro o mecanismo em C.
- Use RAII e semântica de valor para ownership.
- Prefira abstrações type-safe a macros e casts.
Exemplos de código C e C++
main.c
#include <stdio.h>
int max_int(int left, int right) {
return left > right ? left : right;
}
double max_double(double left, double right) {
return left > right ? left : right;
}
int main(void) {
printf("%d %.1f\n", max_int(3, 8), max_double(4.5, 2.0));
}
8 4.5
C++
main.cpp
#include <iostream>
int maximum(int left, int right) {
return left > right ? left : right;
}
double maximum(double left, double right) {
return left > right ? left : right;
}
int main() {
std::cout << maximum(3, 8) << ' '
<< maximum(4.5, 2.0) << '\n';
}
8 4.5
Comparação entre C e C++
C codifica tipo no nome; C++ mantém um nome e resolve em compile time sem custo runtime.
C
C usa prefixos, callbacks, macros e contextos explícitos.
C++
O idioma fornece abstrações com escopo, type-safe e de baixo custo.
Exercícios práticos
Execute as duas versões e modifique-as para observar suas garantias.
- Escreva primeiro o mecanismo em C.
- Substitua cleanup manual por RAII.
- Meça alocações e dispatch virtual.