Menu
Coddy logo textTech

Заголовочные файлы и файлы исходного кода

Часть раздела Объектно-ориентированное программирование путешествия по C++ на Coddy. Урок 3 из 104.

В C++ код разделён на заголовочные файлы (.h) для объявлений и файлы исходного кода (.cpp) для реализаций.

Файл заголовка с защитными макросами (helpers.h)

#ifndef HELPERS_H
#define HELPERS_H

#include <string>

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

#endif

Исходный файл с реализациями (helpers.cpp)

#include "helpers.h"

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

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

Использование их в main

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

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

Вывод:

Hello, Alice!
8

Защита header (#ifndef, #define, #endif) предотвращает многократное включение header. Файл .h объявляет, что существует (прототипы), а файл .cpp определяет, как это работает (реализации).

challenge icon

Задание

Средне

Create three вспомогательные функции, распределённые между заголовочным файлом и файлом исходного кода:

  • helpers.h: объявления функций с защитными макросами заголовочного файла
  • helpers.cpp: реализации функций

Функции для создания:

  • greet(name): возвращает "Hello, <name>!"
  • ageInTenYears(age): возвращает age + 10
  • checkAdult(name, age): возвращает "<name> is an adult", если age >= 18, иначе "<name> is a minor"

Попробуйте сами

#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 iconПроверьте себя

В этом уроке есть небольшой тест. Начните урок, чтобы ответить на вопросы и сохранить прогресс.

Все уроки раздела Объектно-ориентированное программирование

Потренируйтесь самостоятельно: Онлайн-компилятор C++