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

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

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

Подружить два стека С++ - C++

04.04.2014, 17:55. Просмотров 275. Ответов 2
Метки нет (Все метки)

Здравствуйте. Помогите подружить два класса-стека. Мне нужно что бы все методы класса STACK_A использовались классом STACK_B. То есть чтобы я мог заполнить STACK_B используя методы стека_А, а не создавать такие же самые методы для стека_В.
Вот мой код
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
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
#include <iostream>
#include <locale.h>
//#include <string.h>
using namespace std;
const int n=10;
class STACK_B;
class STACK_A
{
private:
    int top;
    char c[10];
public:
    STACK_A();
    friend class STACK_B;
    void push(char s);
    void pop ();
    void showtop();
    void show_stack();
};
STACK_A::STACK_A(){
    top=n;
    cout<<"\nСтек успешно создан"<<endl<<endl;
}
void STACK_A:: push(char s)
{
    if (top==0)
        cout<<"error"<<endl;
    else
    {
        top--;
        c[top]=s;
    }
}
void STACK_A:: pop()
{
    top++; 
}
void STACK_A:: showtop()
{
    cout<<c[top]<<endl;
}
void STACK_A:: show_stack () 
{
    showtop ();
    cout<<endl<<"Ваш стек:";
    for(int i=top;i<n;++i)
        cout<<endl<<"\t"<<c[i];
    cout<<endl;
}
class STACK_B
    {
private:
    int top;
    char c[10];
public:
    friend class STACK_A;
    STACK_B(STACK_A);
};
STACK_B::STACK_B(STACK_A):top(n)
{
    cout<<"\nСтек успешно создан"<<endl<<endl;
}
void main()
{
    setlocale(LC_ALL, "Rus");
    STACK_A obj_A; STACK_B obj_B(obj_A);  
start:
    cout<<"Виберете стек:\nA - действия над стеком A;\nB - действия над стеком B;\n";
    char a;
    cin>>a;
    while (a!='~'){
    switch (a){
case'A':
    cout<<"Виберете действие:\n# - удалить вершину;\n= - вивод стека не экран;\n< - вернутся к вибору стека\n"
        <<"другой символ добавляеться в стек\n\nночните ввод:\n";
    char C;
    cin>>C;
    while (C!='~')
    {   
        switch (C)
        {
        case'#': obj_A.pop(); break;
        case'=': obj_A.show_stack(); break;
        case'<': goto start;
        default: obj_A.push(C);
        }
        cin>>C;
    }
case'B':
    cout<<"Виберете действие:\n# - удалить вершину;\n= - вивод стека не экран;\n< - вернутся к вибору стека\n"
        <<"другой символ добавляеться в стек\n\nночните ввод:\n";
    char C_B;
    cin>>C_B;
    while (C_B!='~')
    {   
        switch (C_B)
        {  
//проблема в этих строках. Пишет что метод не является членом класса                
           case'#': obj_B.pop(); break;
           case'=': obj_B.show_stack(); break;
           case'<': goto start;
           default: obj_B.push(C_B);
        }
        cin>>C_B;
    }
}
    }}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
04.04.2014, 17:55     Подружить два стека С++
Посмотрите здесь:

два стека - C++
#include &lt;iostream.h&gt; #include &lt;stdlib.h&gt; #include &lt;ctype.h&gt; #include &lt;vcl.h&gt; #pragma hdrstop #include &quot;stack.h&quot; #include...

Стек в два стека - C++
Здравствуйте!! Нужно создать стек в диапазоне -50 до 50.Преобразовать стек в два стека.Причем, первый должен содержать только чётные...

Разделить стек на два стека - C++
Подскажите, пожалуйста, как убрать лишние значения при выводе уже полученных стеков в divide происходит разделение (библиотеки шаблонов...

Строковый калькулятор в два стека - C++
У кого есть какие примеры реализации на плюсах, желательно с комментариями. Ибо перечитав море литературы, я так и не смог понять, как...

Создайте два стека для символов - C++
Создайте два стека для символов. Вводите символы с клавиатуры. При этом латинские буквы должны попадать в первый стек, цифры – во второй,...

cout, два стека, нет вывода из второго - C++
Перегрузил оператор вывода: ostream&amp; operator&lt;&lt;(ostream &amp;ost, List &amp;list) //Перегрузка оператора вывода { if (list.head != 0) ...

Разделить строку на буквы и цифры и записать в два стека - C++
нужно создать два стека, ввести строку, состоящую из букв и цифр. Затем разделить их, в первый стек буквы, а во-второй цифры.

Удалить элемент, находящийся в середине стека, если число элементов нечётное, иначе - два средних элемента - C++
ЗДРАВСТВУЙТЕ,ВОТ ЗАДАЧА: Удалить элемент, находящийся в середине стека , если число элементов нечетное, или 2 средних элемента, если...

Подружить С++ и LDAP - C++
Добрый день, Нужно получить список пользователей из Active Directory. Как я понял надо работать через dll winldap. Подключение проходит...

Как подружить C++ и SQL - C++
Много написано на тему как подружить SQL и C++. Скачиваешь амальгаму и оттуда берешь два файла: sqlite.h и sqlite.c Всё классно, но...

как подружить libxml2 и html - C++
Установлена libxml2 из репозитория wheezy. Вот этот код собирается нормально. #include &lt;iostream&gt; #include...

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


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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Wlk
49 / 49 / 13
Регистрация: 07.12.2011
Сообщений: 133
04.04.2014, 19:24     Подружить два стека С++ #2
А что если выделить все общие части 2 классов STACK_A и STACK_B и организовать их как базовый класс STACK_BASE. А от него уже наследовать оба класса и вносить те вещи, которые отличают их от базового.
Grraf
1 / 0 / 0
Регистрация: 14.12.2013
Сообщений: 32
04.04.2014, 19:33  [ТС]     Подружить два стека С++ #3
Наследование использовать нельзя ((
Ответ Создать тему
Опции темы

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