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

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

Восстановить пароль Регистрация
 
Grraf
1 / 0 / 0
Регистрация: 14.12.2013
Сообщений: 32
04.04.2014, 17:55     Подружить два стека С++ #1
Здравствуйте. Помогите подружить два класса-стека. Мне нужно что бы все методы класса 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++
C++ Стек в два стека
C++ Создайте два стека для символов
cout, два стека, нет вывода из второго C++
Подружить С++ и LDAP C++
C++ Разделить строку на буквы и цифры и записать в два стека
Удалить элемент из стека по условию и добавить элемент в начало стека C++
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
Наследование использовать нельзя ((
Yandex
Объявления
04.04.2014, 19:33     Подружить два стека С++
Ответ Создать тему
Опции темы

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