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

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

Войти
Регистрация
Восстановить пароль
 
Romich41
15 / 15 / 1
Регистрация: 01.11.2009
Сообщений: 188
#1

Перегрузка функции - C++

11.03.2010, 18:07. Просмотров 907. Ответов 6
Метки нет (Все метки)

Привет, добрые и умные люди, не могу сдеть прогу....плиз помогите
Согласно заданию нужно реализовать класс абстрактного типа данных
АДТ − стек. Дополнительно перегрузить следующие операции:
«+» − добавить элемент в стек;
«-» − извлечь элемент из стека;
«bool()» − проверка, пустой ли стек
Реализовать эти операции. Выполнить тестирование.
Люди умоляю помогите=(

вот как я понял эти функции, я перезагрузил, но не факт что правильно=(
«+» − добавить элемент в стек;
C++
1
2
3
4
5
int  Stack(int Top, int Element)
{
        if (Top=maxstack) exit(1); //Стек заполнен
        Stack[Top]= Element;//Добавить элемент в стек
        Top++;//Сдвигает указатель на один элемент вверх
«-» − извлечь элемент из стека;
C++
1
2
3
4
5
int Stack(int Top)
{
        if (Top==0) p=1;//Стек пуст
        else p=2;//Стек не пуст
}
«bool()» − проверка, пустой ли стек
C++
1
2
3
4
5
int Stack(int Top)
{
        if (Top==0) exit(1);//Стек пуст
        Top--;//Сдвигаем указатель на один элемент вниз
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
11.03.2010, 18:07     Перегрузка функции
Посмотрите здесь:

Перегрузка операторной функции и функции ! - C++
3.16Разработать класс ThreeAngle для работы с плоскими треугольниками. В качестве членов-данных задаются длины трех сторон треугольника....

Перегрузка функции - C++
Создайте функцию max(), которая возвращает наибольший из трёх численных аргументов, используемых при вызове функции. Перегрузите функцию...

Перегрузка функции - C++
Добрый день. Не могу решить до конца задачу. Суть в том что бы передать значения в функцию, сделать с ними что то и вернуть значение....

Перегрузка функции - C++
#include <iostream> #include <string> using namespace std; void foo(string value){ cout << "String" << endl; } ...

Перегрузка функции С++ - C++
Создайте перегруженную функцию decr(), которая от аргумента вычитает 1, где аргументы целый (int), вещественный (double) тип, символьный...

перегрузка функции << и >> - C++
//include &lt;stdio.h&gt; //include &lt;iostream.h&gt; //include &lt;fstream.h&gt; //include &lt;string.h&gt; char group= “\0”; char otchet= “Print.txt”;...

Перегрузка функции в С++ - C++
1. Определить функцию Search(), которая позволяет найти самое длинное слово в предложении. Перегрузить функцию Search() для нахождения...

После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Aye Aye
367 / 281 / 36
Регистрация: 17.12.2009
Сообщений: 567
11.03.2010, 18:16     Перегрузка функции #2
а где сам класс?
тебе надо описать:
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
class Stack{
private:
      int *data; //будет массив нпример для типа int
      int index, maxsize;
public:
        explicit Stack(int max)
        {
             index=0;
             maxsize=max;
             data = new int[maxsize];
        }
         ~Stack()
         {
              delete [] data;
         }
         int top()
         {
             return data[index];
          }
         void push(int x)
         {
               if (index+1<=maxsize)
               {
                   index++;
                   data[index]=x; 
               }
                else cout << "Stack overflow\n";
         }
         int pop()
         {
              if (index-1>=0)index--;
              else cout<<"Stack underflow\n";
          }
          bool empty()
          {
              return index==0;
          }
};
я не рповерял что получилось, но как то так. а для чего exit(1) если стек полон? это слишком сурово.
Genius Ignat
1235 / 773 / 44
Регистрация: 16.09.2009
Сообщений: 2,014
11.03.2010, 18:53     Перегрузка функции #3
+ - Вроде для бинарных операций: допустим между объектами стеками, не понятна мне мысль задания. Хотя бы так: >> - положить(push) << освободить(pop).
Пример Aye Aye: модифицировать не трудно:

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
class Stack{
public:
//...
Stack& operator>> (int&a);
Stack& operator<< (int&a);
};
 
Stack& Stack::operator>>(int&a){
push(a);
return *this;
} 
Stack& Stack::operator<<(int&a){
a = pop();
return *this;
}
Romich41
15 / 15 / 1
Регистрация: 01.11.2009
Сообщений: 188
12.03.2010, 14:36  [ТС]     Перегрузка функции #4
а как мне сделать, что бы по нажатию на клавиши 1 , 2, 3 выполняли\демонстрировались возможность даного класса(добавлени, удаление, проверка)???
Aye Aye
367 / 281 / 36
Регистрация: 17.12.2009
Сообщений: 567
12.03.2010, 19:44     Перегрузка функции #5
ну можно так...
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
cout  << "1 - menuItem1\n"
            "2 - menuItem2\n"
            "3 - menuItem3\n";
 
int intput=0;
//4 - выход
while (intput!=4)
{
     cin >> input;
     switch(input)
     {
          case 1://действие1
          case 2://действие2
          case 3://действие3
     }
}
хотя я бы сделал так:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
int main()
{
      Stack S(100);
      cout << "Stack size = " << S.size() << endl;
      cout << "Is stack empty = " << S.empty() << endl;
      S.push(34);
      cout << "Stack top is " << S.top() << endl;
      cout << "Is stack empty = " << S.empty() << endl;
      S.push(43);
      S.push(3);
      cout << "now stack size = " << S.size() << endl;
      //ну и акие там еще возможности есть.... незнаю даже
      cout << "Stack top is " << S.top() << endl;
      cout << "pop top\n";
      S.pop();
      cout << "Stack top is " << S.top() << endl;
      getch();
      return 0;
}
вроде показывает, что стек работает.
Romich41
15 / 15 / 1
Регистрация: 01.11.2009
Сообщений: 188
13.03.2010, 19:06  [ТС]     Перегрузка функции #6
а getch() задержка экрана?

Добавлено через 23 часа 6 минут
ну вот создалм класс с 3-мя функциями=) а как эти ФУНКЦИИ перегрузить?
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
13.03.2010, 22:49     Перегрузка функции
Еще ссылки по теме:

перегрузка функции - C++
Функція func повертає позицію першого входження шуканого числа чи символу.ПОДСКАЖИТЕ КАК ЗАМУТИТЬ

Перегрузка функции - C++
Что такое перезагрузка функции в с++? Для чего она нужна? Есть случаи, когда без нее никак? Приведите пример перезагрузки функции? ...

Перегрузка функции - C++
Доброго времени суток Допустим, есть перегруженная функция void func(long f, long g, int q){cout&lt;&lt;&quot;1&quot;;} void func(long f, int g,...

Перегрузка функции - C++
class num { private: long a; long b; int c; int d; public: num(); num(long, long);

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


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

Или воспользуйтесь поиском по форуму:
M128K145
Эксперт С++
8284 / 3503 / 143
Регистрация: 03.07.2009
Сообщений: 10,706
13.03.2010, 22:49     Перегрузка функции #7
Romich41, перегрузка методов класса - это создание двух или более методов с одинаковым именем, но разной сигнатурой.
Yandex
Объявления
13.03.2010, 22:49     Перегрузка функции
Ответ Создать тему
Опции темы

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