Настройка проекта
Часть раздела Объектно-ориентированное программирование путешествия по C на Coddy. Урок 22 из 61.
Задание
ЛегкоНачнём создавать вашу библиотеку 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;
}
Все уроки раздела Объектно-ориентированное программирование
1Основы модульного программирования
Заголовочные файлыСтражи включенияИсходные файлыСтатические функцииПовторение: Модульный калькулятор4Инкапсуляция
Концепция непрозрачных указателейОпределение непрозрачных структурГеттеры и сеттерыВалидация в сеттерахИтоги: Секретный ящик2Объекты и методы
Структуры как объектыУказатель 'Self'Константная корректностьУказатель против значенияВспомогательные методыИтоги: Point Manager5Проект: Простой банковский счет
Настройка проектаРеализация счета3Жизненный цикл объекта
Паттерн «Конструктор»Паттерн «Деструктор»Инициализация в стекеГлубокое копированиеПовторение: String Wrapper6Наследование через композицию
Встраивание структурПравило первого элементаДоступ к элементам родителяUpcastingПовторение: Иерархия фигур9Проект: Рисование фигур
Обзор проектаРеализация кругаРеализация прямоугольникаПолиморфное использованиеКонтейнер фигурПотренируйтесь самостоятельно: Онлайн-компилятор C