Menu
Coddy logo textTech

Arquivos Header e Source

Parte da seção Programação Orientada a Objetos do Journey de C++ da Coddy — lição 3 de 104.

Em C++, o código é dividido em arquivos de cabeçalho (.h) para declarações e arquivos de origem (.cpp) para implementações.

Arquivo de cabeçalho com guards de cabeçalho (helpers.h)

#ifndef HELPERS_H
#define HELPERS_H

#include <string>

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

#endif

Arquivo de origem com implementações (helpers.cpp)

#include "helpers.h"

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

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

Usando-os no main

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

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

Saída:

Hello, Alice!
8

Header guards (#ifndef, #define, #endif) evitam que um cabeçalho seja incluído múltiplas vezes. O arquivo .h declara o que existe (protótipos), o arquivo .cpp define como funciona (implementações).

challenge icon

Desafio

Médio

Crie três funções auxiliares divididas entre um arquivo de cabeçalho e um arquivo de origem:

  • helpers.h — Declarações de função com guards de cabeçalho
  • helpers.cpp — Implementações de função

Funções para criar:

  • greet(name) — retorna "Hello, <name>!"
  • ageInTenYears(age) — retorna age + 10
  • checkAdult(name, age) — retorna "<name> is an adult" se age >= 18, caso contrário "<name> is a minor"

Folha de consulta

O código C++ é organizado em arquivos de cabeçalho (.h) para declarações e arquivos de origem (.cpp) para implementações.

Header guards evitam inclusões múltiplas:

#ifndef HELPERS_H
#define HELPERS_H
// declarações aqui
#endif

Arquivo de cabeçalho (helpers.h) contém declarações de funções:

#ifndef HELPERS_H
#define HELPERS_H

#include <string>

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

#endif

Arquivo de origem (helpers.cpp) contém implementações:

#include "helpers.h"

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

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

Usando as funções no main:

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

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

Experimente você mesmo

#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 iconTeste seus conhecimentos

Esta lição inclui um quiz rápido. Comece a lição para respondê-lo e acompanhar seu progresso.

Todas as lições de Programação Orientada a Objetos