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

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

Войти
Регистрация
Восстановить пароль
 
Utkin53
0 / 0 / 0
Регистрация: 18.05.2013
Сообщений: 25
#1

Классы, наследование - C++

15.12.2013, 11:03. Просмотров 262. Ответов 0
Метки нет (Все метки)

Всем доброго времени суток, проблема в следующем:
Дано задание реализовать классы логических операций конъюнкции, дизъюнкции, отрицания и импликации.
1)Конъюнкция, дизъюнкция, отрицание являются наследниками базового класса BASE, где прописаны переменные, функции ввода/вывода.
2)Импликация является наследником классов отрицания и дизъюнкции.
В 1) всё норм, но в 2) выдаётся ошибка, что переменная IMP::ao,a не являются однозначными. Как исправить эту ошибку?
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
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
class BASE 
{
protected:
    bool a,b,ao,bo,out,at,bt;
public: BASE ()
        {
            a=0;
            b=0;
            ao=0;
            bo=0;
            at=0;
            bt=0;
            out=0;
        }
        void BASE::vvod ()
        {
            cout<<"\nВведите A:";
            cin>>a;
            cout<<"\nВведите B:";
            cin>>b;
        }
        void BASE::vivod ()
        {
            cout<<"\n"<<out;
        }
};
class DIZ:public BASE //дизъюнкция
{
public:
    bool DIZ::diz()
    {
        if ((a==0)&&(b==0))
        {
            return out=0;
        }
        else
        {
            return out=1;
        }
    }
};
class KON:public BASE //конъюнкция
{
public:
    bool KON::kon()
    {
        if ((a==1)&&(b==1))
        {
            return out=1;
        }
        else
        {
            return out=0;
        }
    }
};
class OTR:public BASE //отрицание
{
public: 
    bool OTR::otr(bool t=0)
    {
            if (t==0)
            {
                t=1;
            }
            else 
            {
                t=0;
            }
        return t;
    }
};
class IMP:public OTR,public DIZ //импликация
{
public:
    bool IMP::imp()
    {
        ao=otr(a);
        
    }
};
Добавлено через 16 часов 12 минут
Проблема решена, в промежуточных классах стоило сделать виртуальное наследование
C++
1
class KON:virtual public BASE
, например
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
15.12.2013, 11:03
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Классы, наследование (C++):

Наследование, базовые классы и производные классы - C++
Добрый вечер.Задание: необходимо разработать поля и методы наследуемые из базового класса и собственные компоненты производных...

Классы и наследование (Создать класс 3D фигура, и производные классы шар, конус, цилиндр и куб. Создать функцию вычисления объёма.) - C++
Уважаевые, помогите написать прожку на экзамене: Создать класс 3D фигура, и производные классы шар, конус, цилиндр и куб. Создать функцию...

Классы и их наследование - C++
Начал изучать С++ и ООП после того как понял немного осоновы. И вот столкнулся с чем. Есть базовый класс, есть класс-наслденик, базовый...

Классы и наследование - C++
Помогите , пожалуйста! Нужно с помощью наследования записать количество проданного товара и функцию нахождения остатка товара. !Не...

Наследование. Классы. C++ - C++
Наверное мой вопрос будет смешным, но я действительно не могу придумать методы и свойства. Я совсем запуталась что чем является, и не могу...

Классы и наследование - C++
Реализовать класс−оболочку Number для числового типа double. Реализовать методы умножения и вычитания. Создать производный класс Real, в...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
15.12.2013, 11:03
Привет! Вот еще темы с ответами:

Классы. Наследование - C++
Приветствую всех участников форума! Требуется помощь. Итак, задание Написать программу, демонстрирующую работу с объектами двух...

Классы и наследование - C++
Доброго времени суток. Помогите решить задание. Дан класс pegasus ,у которого родительский класс horse, надо переделать код, чтобы при...

Классы, наследование - C++
Собственно, задача поставлена так, в файле N логинов и паролей, которые считываются и проверяются с теми что введены с клавиатуры. ...

Классы, наследование - C++
как сделать, что бы вызывался деструктор B? Кроме как &quot;delete (B*)var;&quot; class A { public: A(){ cout &lt;&lt; &quot;A's...


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

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

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