Menu
Coddy logo textTech

Archivos de cabecera y archivos fuente

Parte de la sección Programación Orientada a Objetos del Journey de C++ de Coddy — lección 3 de 104.

En C++, el código se divide en archivos de cabecera (.h) para declaraciones y archivos de fuente (.cpp) para implementaciones.

Archivo de cabecera con guardas de cabecera (helpers.h)

#ifndef HELPERS_H
#define HELPERS_H

#include <string>

std::string greet(std::string name);
int addNumbers(int a, int b);

#endif

Archivo fuente con implementaciones (helpers.cpp)

#include "helpers.h"

std::string greet(std::string name) {
    return "Hello, " + name + "!";
}

int addNumbers(int a, int b) {
    return a + b;
}

Usándolos en main

#include <iostream>
#include "helpers.h"

int main() {
    std::cout << greet("Alice") << std::endl;
    std::cout << addNumbers(5, 3) << std::endl;
    return 0;
}

Salida:

Hello, Alice!
8

Las guardas de encabezado (#ifndef, #define, #endif) evitan que un encabezado se incluya varias veces. El archivo .h declara lo que existe (prototipos), el archivo .cpp define cómo funciona (implementaciones).

challenge icon

Desafío

Intermedio

Crea tres funciones auxiliares divididas en un archivo de cabecera y un archivo de fuente:

  • helpers.h — Declaraciones de funciones con protectores de cabecera (header guards)
  • helpers.cpp — Implementaciones de las funciones

Funciones a crear:

  • greet(name) — devuelve "Hello, <name>!"
  • ageInTenYears(age) — devuelve age + 10
  • checkAdult(name, age) — devuelve "<name> is an adult" si age >= 18, de lo contrario "<name> is a minor"

Hoja de referencia

El código C++ se organiza en archivos de cabecera (.h) para las declaraciones y archivos de fuente (.cpp) para las implementaciones.

Las guardas de cabecera (header guards) evitan inclusiones múltiples:

#ifndef HELPERS_H
#define HELPERS_H
// declaraciones aquí
#endif

El archivo de cabecera (helpers.h) contiene las declaraciones de las funciones:

#ifndef HELPERS_H
#define HELPERS_H

#include <string>

std::string greet(std::string name);
int addNumbers(int a, int b);

#endif

El archivo de fuente (helpers.cpp) contiene las implementaciones:

#include "helpers.h"

std::string greet(std::string name) {
    return "Hello, " + name + "!";
}

int addNumbers(int a, int b) {
    return a + b;
}

Uso de las funciones en main:

#include <iostream>
#include "helpers.h"

int main() {
    std::cout << greet("Alice") << std::endl;
    std::cout << addNumbers(5, 3) << std::endl;
    return 0;
}

Pruébalo tú mismo

#include <iostream>
#include "helpers.h"

int main() {
    std::string name;
    int age;
    std::getline(std::cin, name);
    std::cin >> age;
    
    std::cout << greet(name) << std::endl;
    std::cout << "In 10 years you will be " << ageInTenYears(age) << std::endl;
    std::cout << checkAdult(name, age) << std::endl;
    return 0;
}
quiz iconPonte a prueba

Esta lección incluye un breve cuestionario. Empieza la lección para responderlo y registrar tu progreso.

Todas las lecciones de Programación Orientada a Objetos