Форум программистов, компьютерный форум, киберфорум
Наши страницы

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

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Перемещение метода класса между секциями http://www.cyberforum.ru/cpp-beginners/thread1138986.html
есть 2 класса class A{ public: int ABS(int Count, ...); int ARS(int Count, ...); } class B:public A{ }
C++ Реализовать класс ЦЕХ Всем доброго времени суток. Необходимо реализовать программу с классом ЦЕХ В нем надо: 1. Определить пользовательский класс в соответствии с вариантом задания. 2. Определить в классе следующие... http://www.cyberforum.ru/cpp-beginners/thread1138978.html
C++ Восстановить путь
Всем Привет!!! Вообщем есть задача дана матрица состоящая из целых положительных чисел . Путь по матрице начинается в левом верхнем углу. За один ход можно пройти в соседнюю по вертикали или...
C++ Нужно разобраться в коде
Господа, я новичок. Хочу разобраться в коде. Задача была изменить размер консольного окна. И, поискав на форуме, нашел ниже написанный код. Прошу помочь разобраться в нем. Заранее благодарен. ...
C++ Возведение в степень без умножения http://www.cyberforum.ru/cpp-beginners/thread1138935.html
// 30_square.cpp: определяет точку входа для консольного приложения. // #include "stdafx.h" #include "../../std_lib_facilities.h" int _tmain(int argc, _TCHAR* argv) { int square (int x) {
C++ Функция принимает в параметры массив и сжимает его Написать функцию которая принимает в параметры массива и сжимает его путем сложения разных соседних местами, заполнив свободные места нулями. Кто может решить? Заранее спасибо подробнее

Показать сообщение отдельно
Grraf
1 / 0 / 0
Регистрация: 14.12.2013
Сообщений: 32

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

04.04.2014, 17:55. Просмотров 293. Ответов 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;
    }
}
    }}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru