Структура такая : Основной файл 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.
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.
Вячеслав Сокура
Спасибо !))
Классы нужны для реализации принципа ООП.
Это значит, что программу нужно разбить на логичные части, как бы они выгледяли если бы программа была реальным физическим объектом (какой нибудь дом например), они же из чего-то состоят.
Класс Абонентской Базы, класс управляющей этой базой, класс Абонента и т. д. Класс самой программы.
Классы могут быть не только описанием конкретных вещей, но могут быть и вспомогательные классы, типа тех, которых называют шаблонами проектирования (паттерны), есть другие классы, которых используют в наследовании, например класс для подсчёта ссылок.
Реализуй классы в .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
Это значит, что программу нужно разбить на логичные части, как бы они выгледяли если бы программа была реальным физическим объектом (какой нибудь дом например), они же из чего-то состоят.
Класс Абонентской Базы, класс управляющей этой базой, класс Абонента и т. д. Класс самой программы.
Классы могут быть не только описанием конкретных вещей, но могут быть и вспомогательные классы, типа тех, которых называют шаблонами проектирования (паттерны), есть другие классы, которых используют в наследовании, например класс для подсчёта ссылок.
Реализуй классы в .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
Вячеслав Сокура
Спасибо!
Похожие вопросы
- Как вы называете файлы / модули / классы, которые читают / сохраняют данные на диск?
- Статичная функция внутри класса. какие данные будут доступны всем образцам класса?
- Вопрос к полиграфистам по экспорту файла из InDesign в .pdf
- как узнать в какой программе сделан файл с расширением DAT и расшифровать его
- Си. Программа читает файл txt и заполняет находящимися там числами массив, но
- какая программа переводит файлы avi в mpeg4?этот формат воспризводится обычным dvd-плеером?
- Вопрос по команде в bat файлах
- Как составить программу на языке Паскаль,если задано следующее условие
- Вопрос дизайнерам. Про сохранение промежуточных файлов в фотошопе.
- Люди помагите написать программу на с++ с классами и функциями-членов, очень надо допуск к эузамену(((