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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
o33ik
138 / 5 / 1
Регистрация: 25.03.2013
Сообщений: 228
#1

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

13.05.2013, 12:25. Просмотров 355. Ответов 6
Метки нет (Все метки)

У меня есть клас 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++
Доброго утра всем, разъясните кто-нибудь пожалуйста как правильно разбивать программу на части? Вот предположим у меня есть класс Job, и...

Наследование наследование ) - C++
Доброе время суток всем! Делаю одно задание и столкнулся с вопросом У меня есть клас Person и клас avto со множивстом динамических и...

Наследование - C++
Привет! Есть следующая ситуация: class Counter { protected: unsigned int count; public: Counter(): count(0) {} ...

Наследование - C++
Если я объявлю класс A, как базовый для класса B, то есть вот так: class B : public A { ... }; То в методах класса B будут...

наследование - C++
Доброго времени суток всем. У меня такая проблема: написал класс L2 список символов. На его основе требуется сделать дек символов. Кроме...

Наследование - C++
Помогите решить вот такую задачку: Создать класс CFloatNumber, реализующий открытое наследование членов класса CIntNumber, содержащий...

Наследование - C++
Реализовать наследование классов, их констркторов, и если необходимо деструкторов, для своего варианта. Продемонстрировать в программе...

После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
lemegeton
2918 / 1347 / 134
Регистрация: 29.11.2010
Сообщений: 2,721
13.05.2013, 12:30     Наследование #2
Отношения классов SELLER и SHOP ну никак не наследование. Потому что продавец не является магазином, а магазин продавцом. Аггрегация более уместна.
ValeryS
Модератор
6540 / 5006 / 461
Регистрация: 14.02.2011
Сообщений: 16,652
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
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
2918 / 1347 / 134
Регистрация: 29.11.2010
Сообщений: 2,721
13.05.2013, 13:35     Наследование #6
Цитата Сообщение от o33ik Посмотреть сообщение
lemegeton, аггреация? можно по подробнее?
Два других оратора смело продемонстрировали вам аггрегацию. Это когда один объект хранит другой или множество других. В вашем случае магазин хранит продукты. Про продавца сказать сложно, так как не очень понятно назначение класса. Если опишите подробнее, можно будет подумать.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
13.05.2013, 16:19     Наследование
Еще ссылки по теме:

Наследование - C++
Помогите пожалуйста вот с такой задачей: Надо создать класс треугольник. Вводим три стороны и находим периметр и градусы углов. Потом...

наследование - C++
Всем привет.Проблема в том, что у меня не сравниваются числа в классе Fraction.Я просто не знаю,как правильно это сделать.Подскажите...

Наследование - C++
Не могу понять в чем ошибка. #include &lt;iostream&gt; #include &lt;string&gt; using namespace std; class Auto { protected: string...

Наследование - C++
Какой практический смысл private-наследования? (Понятно, что это инкапсуляция базового класса)

Наследование в С++ - C++
Здравствуйте! #include &lt;iostream&gt; using namespace std; class exp{ public: virtual exp* diff()=0; virtual void...


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

Или воспользуйтесь поиском по форуму:
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     Наследование
Ответ Создать тему
Опции темы

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