C++ moderno e alternativas em C

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++

C
Executar →
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));
}
Saída esperada
8 4.5
C++
Executar →
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';
}
Saída esperada
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.