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 encabezado (.h) para las declaraciones y archivos de código fuente (.cpp) para las implementaciones.

Archivo de encabezado con protectores de encabezado (helpers.h)

#ifndef HELPERS_H
#define HELPERS_H

#include <string>

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

#endif

Archivo de origen 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;
}

Usarlos 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), y el archivo .cpp define cómo funciona (implementaciones).

challenge icon

Desafío

Intermedio

Crea tres funciones auxiliares distribuidas entre un archivo de encabezado y un archivo fuente:

  • helpers.h: Declaraciones de funciones con protectores de inclusión
  • helpers.cpp: Implementaciones de las funciones

Funciones que debes 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"

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

Practica por tu cuenta: Compilador de C++ online