Форум программистов, компьютерный форум CyberForum.ru

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

Восстановить пароль Регистрация
 
Alexander Rav
Сообщений: n/a
29.05.2012, 16:32     Нужно использовать в работе множественное наследование - не знаю куда засунуть #1
Задали написать небольшую программку для управления доходами магазина.

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;

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

Возможно логка хромает...
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
29.05.2012, 16:32     Нужно использовать в работе множественное наследование - не знаю куда засунуть
Посмотрите здесь:

Множественное наследование C++
Множественное наследование C++
Множественное наследование C++
Множественное наследование C++
Множественное наследование C++
Множественное наследование C++
Множественное наследование C++
C++ Множественное наследование - когда оно действительно нужно?

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Ответ Создать тему
Опции темы

Текущее время: 01:34. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru