Настройка проекта
Часть раздела Object Oriented Programming путешествия по C на Coddy — урок 22 из 61.
Задание
ЛегкоДавайте начнем создавать вашу библиотеку банковских счетов! На этом первом этапе вы создадите публичный интерфейс — заголовочный файл, который определяет существующие операции, не раскрывая никаких деталей реализации.
Вы создадите два файла, чтобы заложить основу проекта:
account.h: Ваш публичный заголовочный файл. Это то, что будут подключать пользователи вашей библиотеки. Объявите непрозрачный типAccount, используя неполное объявление типа — без тела структуры, просто предварительное объявление (forward declaration), которое сообщает компилятору, что такой тип существует. Затем объявите прототипы функций дляcreate_account(принимает целое число для идентификатора счета и возвращает указатель на Account) иdestroy_account(принимает указатель на Account и ничего не возвращает). Не забудьте про include guards, используя символACCOUNT_H.main.c: Простой тестовый файл для проверки правильности компиляции вашего заголовка. Подключите свой заголовочный файл и выведите сообщение, подтверждающее готовность интерфейса. Поскольку мы еще не реализовали функции, просто выведите подтверждающее сообщение — сама реализация появится в следующем уроке.
Ключевая идея здесь заключается в том, что ваш заголовочный файл показывает, что может делать модуль Account (создавать и удалять счета), не показывая, как он хранит данные внутри. Любой, кто подключит account.h, будет знать, что тип Account существует и какие функции доступны, но не сможет получить доступ к внутренним полям — потому что вы не определили их в заголовке!
Ваш основной файл должен вывести:
Account interface readyЭто подготавливает почву для полноценной системы банковских счетов, которую вы построите в течение следующих нескольких уроков. Созданный вами сейчас заголовок будет расширяться и включать deposit, withdraw и get_balance по мере продвижения по проекту.
Попробуйте сами
#include <stdio.h>
#include "account.h"
int main() {
// TODO: Выведите сообщение, подтверждающее готовность интерфейса
// Сообщение должно быть: "Account interface ready"
return 0;
}
Все уроки раздела Object Oriented Programming
1Основы модульного программирования
Заголовочные файлыСтражи включенияИсходные файлыСтатические функцииПовторение: Модульный калькулятор4Инкапсуляция
Концепция непрозрачных указателейОпределение непрозрачных структурГеттеры и сеттерыВалидация в сеттерахИтоги: Секретный ящик2Объекты и методы
Структуры как объектыУказатель 'Self'Константная корректностьУказатель против значенияВспомогательные методыИтоги: Point Manager5Проект: Простой банковский счет
Настройка проектаРеализация счета3Жизненный цикл объекта
Паттерн «Конструктор»Паттерн «Деструктор»Инициализация в стекеГлубокое копированиеПовторение: String Wrapper6Наследование через композицию
Встраивание структурПравило первого элементаДоступ к элементам родителяUpcastingПовторение: Иерархия фигур9Проект: Рисование фигур
Обзор проектаРеализация круга