Другие языки программирования и технологии

Вопрос по дробления программы на файлы и классам. На данных условиях, как будет выглядеть структуризация?

Структура такая : Основной файл Main. Далее, по нажатию клавиши открывается Главное Меню ( в своем файле ) . В нем 3 позиции : Меню Абонентов ( тоже в своем файле ), Меню событий ( тоже ) и кнопка выхода из программы. Если реализовать это с использованием классов и дроблением на файлы, то как это будет выглядеть?
Вот меню https://pastebin.com/24etYHsw
Просто немного путаюсь с классами.
2 класса

class menuSubscribers
{
};

class menuEvents
{
};

Пример полного класса:

class Account
{
public:
// объявление прототипов функций
Account(int initialBalance);
void credit(int initialBalance);
void debit(int initialBalance);
int getBalance();
// определение элементов-данных (переменных)
private:
int balance;
};

Определение функций располагается в другом файле с расширением *.cpp

Книга в помощь: Дейтел Х. М., Дейтел П. Дж. - Как программировать на C++ -2008

P.S. меню в главной функции (main) обычно делаают через оператор выбора switch, не через цикл управляемый контрольным значением while.
AY
Alexander Yurinskiy
13 107
Лучший ответ
Классы нужны для реализации принципа ООП.

Это значит, что программу нужно разбить на логичные части, как бы они выгледяли если бы программа была реальным физическим объектом (какой нибудь дом например), они же из чего-то состоят.

Класс Абонентской Базы, класс управляющей этой базой, класс Абонента и т. д. Класс самой программы.

Классы могут быть не только описанием конкретных вещей, но могут быть и вспомогательные классы, типа тех, которых называют шаблонами проектирования (паттерны), есть другие классы, которых используют в наследовании, например класс для подсчёта ссылок.

Реализуй классы в .cpp файлах.

У малоопытных может появиться трудность с #include и видимостью объектов, определений и т. д.

каждый .h файл должен быть защищён от повторного включения, то есть содержать код

#ifndef __ИМЯ_ФАЙЛА_H__
#define __ИМЯ_ФАЙЛА_H__

тут объявление класса

#endif

если класс использует какой-то тип (класс это пользовательский тип), но этот тип не известен, то можно использовать объявление неполного типа.

#ifndef __ABONENT_H_
#define __ABONENT_H_

// например DataBase не известен в файле, тогда

class DataBase; // НЕПОЛНЫЙ ТИП
class Abonent{
DataBase * m_dataBase = nullptr; // ok, объект этого типа должен быть указателем (возможно можно и ссылку хз)
public:
Abonent();
~Abonent();
...
};

#endif
[O
[]\\ Official Page [] \\
30 070