Menu
Coddy logo textTech

Arquivos de cabeçalho e arquivos-fonte

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 guardas 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 em 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

As proteções de cabeçalho (#ifndef, #define, #endif) impedem que um cabeçalho seja incluído várias vezes. O arquivo .h declara o que existe (protótipos), e o arquivo .cpp define como isso funciona (implementações).

challenge icon

Desafio

Médio

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

  • helpers.h: Declarações de funções com guardas de inclusão
  • helpers.cpp: Implementações das funções

Funções a 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"

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

Pratique por conta própria: Compilador de C++ online