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

Наследование - C++

Восстановить пароль Регистрация
 
o33ik
138 / 5 / 1
Регистрация: 25.03.2013
Сообщений: 228
13.05.2013, 12:25     Наследование #1
У меня есть клас SHOP, одно из полей етого класа ето массив обьектов класса GOODS. Клас SELLER есть наследником SHOP. Надо написать ф-цию которая будет менять поле обьекта типа GOODS. Как ето сделать?
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
#include <iostream>
#include <string>
 
using namespace std;
 
class GOODS
{
protected:
    bool availability;
    string name;
    string type;
    string count_type;
    int count;
}
 
class SHOP
{
    GOODS goods[1000];
    int all_cash;
}shop;
 
class DIRECTOR:SHOP
{
public:
    int cash_in_sum(int cash)
    {
 
    }
    int cash_out_sum(int cash)
    {
 
    }
}
 
class SELLER:DIRECTOR
{
public:
    GOODS sell(GOODS good)
    {
        
    }
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
13.05.2013, 12:25     Наследование
Посмотрите здесь:

C++ Наследование
Наследование C++
C++ наследование
C++ Наследование?!
C++ наследование
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
lemegeton
 Аватар для lemegeton
2910 / 1339 / 133
Регистрация: 29.11.2010
Сообщений: 2,720
13.05.2013, 12:30     Наследование #2
Отношения классов SELLER и SHOP ну никак не наследование. Потому что продавец не является магазином, а магазин продавцом. Аггрегация более уместна.
ValeryS
Модератор
6377 / 4843 / 442
Регистрация: 14.02.2011
Сообщений: 16,048
13.05.2013, 12:31     Наследование #3
Цитата Сообщение от o33ik Посмотреть сообщение
class SHOP
{
* * GOODS goods[1000];
goods у тебя приватный кроме класса SHOP к нему никто не имеет доступ
или сделай его protected:
чтобы наследники имели доступ
или public: чтобы все имели доступ
или в SHOP создай метод который будет работать с goods
кстати к членам GOODS тоже никто не достучится
потому что они объявлены protected:
запрещено всем кроме наследников
o33ik
138 / 5 / 1
Регистрация: 25.03.2013
Сообщений: 228
13.05.2013, 12:39  [ТС]     Наследование #4
lemegeton, аггреация? можно по подробнее?

Добавлено через 7 минут
ValeryS, не очень понимаю. ну я пробую сделать метод в SHOP но что то не так
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
#include <iostream>
#include <string>
 
using namespace std;
 
class GOODS
{
protected:
    bool availability;
    string name;
    string type;
    string count_type;
    int count;
}
 
class SHOP
{
protected:
    GOODS goods[1000];
    int all_cash;
public:
    int sell_good(GOODS good, int count)
    {
        good.count=good.count-count;
    }
}shop;
 
class DIRECTOR:SHOP
{
public:
    int cash_in_sum(int cash)
    {
 
    }
    int cash_out_sum(int cash)
    {
 
    }
}
 
class SELLER:DIRECTOR
{
public:
    GOODS sell(GOODS good)
    {
 
    }
}
Ternsip
 Аватар для Ternsip
660 / 188 / 6
Регистрация: 10.05.2012
Сообщений: 595
13.05.2013, 13:32     Наследование #5
o33ik, если вы хотите пренебречь законами ООП , тогда смело ставьте public. Если же нет, тогда меняйте внутри самого класса.
C++
1
2
3
4
5
6
7
8
class SHOP {
public:
    GOODS goods[1000];
    int all_cash;
    int sell_good(GOODS good, int count) {
        good.count = good.count-count;
    }
} shop;
Добавлено через 3 минуты
Внутри класса SHOP создайте метод, который будет вызываться начальником
lemegeton
 Аватар для lemegeton
2910 / 1339 / 133
Регистрация: 29.11.2010
Сообщений: 2,720
13.05.2013, 13:35     Наследование #6
Цитата Сообщение от o33ik Посмотреть сообщение
lemegeton, аггреация? можно по подробнее?
Два других оратора смело продемонстрировали вам аггрегацию. Это когда один объект хранит другой или множество других. В вашем случае магазин хранит продукты. Про продавца сказать сложно, так как не очень понятно назначение класса. Если опишите подробнее, можно будет подумать.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
13.05.2013, 16:19     Наследование
Еще ссылки по теме:

Наследование наследование ) C++
C++ Наследование

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

Или воспользуйтесь поиском по форуму:
o33ik
138 / 5 / 1
Регистрация: 25.03.2013
Сообщений: 228
13.05.2013, 16:19  [ТС]     Наследование #7
lemegeton, ну продавец должен продавать продукты(GOODS), тоисть менять значение параметра availability и менять значение all_cash(класс SHOP)

Добавлено через 1 минуту
Ternsip, да не, законы нарушать не буду)
Yandex
Объявления
13.05.2013, 16:19     Наследование
Ответ Создать тему
Опции темы

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