Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Alexander Rav
1

Нужно использовать в работе множественное наследование - не знаю куда засунуть

29.05.2012, 16:32. Показов 449. Ответов 0
Метки нет (Все метки)

Задали написать небольшую программку для управления доходами магазина.

1 - Оплатить товары можно наличными, кредиткой или чеками. Можно сочетать эти способы оплаты в неограниченном количестве (например наличкой половина и 2 разные кредитки и еще 5 чеков на остальное). Единственное ограничение - та часть что оплачивается наличкой - только один раз. То есть нельза наличкой дать сначало половину, потом четверть наличкой и еще четверть кредиткой.

2 - Магазит хранить данные о каждой покупке:
дата, сумма и подробное описание способов оплаты этой покупки:

- Наличка - сумма
- Чек - сумма, id чека, имя банка, и дата написанная на чеке
- Кредитка - сумма, id кредитки, дата expired визитки, и дата когда с кредитки снимутся деньги
---------------

В задании есть еще условия но там вроде бы вообще никуда не засунешь множественное наследование.

В теории знаю что это и зачем - на практике не вижу смысла.

Единственное место которое дает мне сомнения - это вот эти способы оплаты... так как они имеют общие поля друг с другом.... но и тут моя логика мне мешает...

Я бы сделал так (обычное наследование):

C++ (Qt)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
class Cash
{
    int sum;
}
 
class Check:Cash
{
    int id, date;
    string bank_name;
}
 
class Credit:Cash
{
    int id, date, expire_month, expire_year;
}
Если бы у Credit нужно было нам bank_name тоже то наверное у кредит Cash и Check были бы папами... но там нам не нужно имя банка...

Вобщем есть смысл тут вообще пытаться использовать множественное наследование?

З.Ы
Сам магазин состоит у меня из классов:

1 - Product (товар)
2 - Cart (корзина купленных товаров но не оплаченных)
3 - Invoice (тут предполагается хранить информацию об оплате)
4 - Cash (наличка)
5 - Check (чек)
6 - Credit (кредитная карта)
7 - Shop (тут в принципе вся работа магазина, храню тут:
invoice * invoices_db;
int count_invoices;
Cart * carts_db;
int count_carts;

(то есть как бы база оплат корзин и самих корзин)

Возможно логка хромает...

Помощь в написании контрольных, курсовых и дипломных работ здесь.

Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
29.05.2012, 16:32
Ответы с готовыми решениями:

Множественное наследование - когда оно действительно нужно?
Здравствуйте! До изучения языка C++ я программировал на языках типа Java и C#, где множественное...

Нужно ли здесь использовать наследование?
Например, у нас есть класс нашего игрового персонажа class Person { //... //поля...

Нужно ли всегда использовать using при работе с файлами
using (FileStream fs = new FileStream(path,FileMode.Open,FileAccess.ReadWrite)) { using...

Куда засунуть хранилище?
Пытаюсь написать графредактор, столкнулся с проблемой хранения нарисованных мною элементов, для...

0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
29.05.2012, 16:32

Не знаю, как засунуть картинки в проект
Есть примерно 40 картинок (800x600 если это надо). Так же есть 1 Timage. Хочу сделать что бы при...

Множественное наследование
У меня есть 3 класса Book class Book { protected: string namebook; string author; string...

Множественное наследование
Описать два базовых класса с защищенной переменной типа char (в первом - фамилия, во втором - имя)....

Множественное наследование
В спортивных соревнованиях различных видов спорта приняли участие люди из разных стран. Название...

Множественное наследование
Добрый день, коллективный разум, прошу твоей помощи. Вопрос в следующем: как имея следующую...

Множественное наследование
Как создать нового наследника из базового класса и наследника базового класса?


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
1
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2021, vBulletin Solutions, Inc.