Menu
Coddy logo textTech

Настройка проекта

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

challenge icon

Задание

Легко

Начнём создавать вашу библиотеку Bank Account! На этом первом шаге вы создадите публичный интерфейс: файл заголовка, который определяет доступные операции, не раскрывая никаких деталей реализации.

Вы создадите два файла, чтобы заложить основу проекта:

  • account.h: ваш общедоступный файл заголовка. Именно этот файл будут подключать пользователи вашей библиотеки. Объявите непрозрачный тип Account с помощью объявления неполного типа: без тела struct, только предварительное объявление, сообщающее компилятору, что такой тип существует. Затем объявите прототипы функций для create_account (принимает integer для идентификатора account и возвращает указатель Account) и destroy_account (принимает указатель Account и ничего не возвращает). Не забудьте добавить защиту от повторного включения с использованием символа ACCOUNT_H.
  • main.c: простой тестовый файл для проверки того, что ваш файл заголовка компилируется правильно. Подключите файл заголовка и выведите сообщение, подтверждающее готовность интерфейса. Поскольку мы ещё не реализовали функции, просто выведите подтверждающее сообщение: фактическая реализация появится на следующем уроке.

Главная идея здесь заключается в том, что ваш файл заголовка раскрывает, что может делать модуль Account (создавать и уничтожать account), не показывая, как он хранит данные внутри. Любой, кто подключит account.h, будет знать, что существует тип Account и какие функции доступны, но не сможет получить доступ к внутренним полям, потому что вы не определили их в файле заголовка!

Ваш основной файл должен вывести:

Account interface ready

Это создаёт основу для полноценной системы Bank Account, которую вы будете создавать в следующих уроках. Созданный сейчас файл заголовка со временем будет дополнен deposit, withdraw и get_balance по мере продвижения по проекту.

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

#include <stdio.h>
#include "account.h"

int main() {
    // TODO: Выведите сообщение, подтверждающее готовность интерфейса
    // The message should be: "Account interface ready"
    
    return 0;
}

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

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