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

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

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

Записать функции в виде методов класса - C++

14.01.2014, 20:58. Просмотров 172. Ответов 0
Метки нет (Все метки)

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
108
109
110
111
112
113
#include <stdio.h>
#include <stdlib.h>
#include <locale.h>
 
struct Stack
{
    int data;
    struct Stack *next;
};
 
typedef struct Stack StackN;
typedef StackN *StackPtr;
 
void push( StackPtr *,int);
int pop(StackPtr*);
int isEmpty(StackPtr);
void printStack(StackPtr);
void instructions(void);
 
 
/*вставить значение в вершину стека*/
void push(StackPtr *top, int info)
{
    StackPtr newP; 
    newP=(StackPtr)malloc(sizeof(StackN));
    if(newP!=NULL) 
    {
        newP->data=info;
        newP->next=*top;
        *top=newP;
    }
    else
        printf("%d Ошибка. Недостаточно памяти.\n",info);
}
 
/*стек пуст?*/
int isEmpty(StackPtr top)
{
    return top==NULL;
} 
 
int main()
{
    setlocale(LC_CTYPE, "Russian_Russia.1251");
    StackPtr stackPtr=NULL; /*указывает на вершину стека*/
    int choice, value;
    instructions();
    printf("?");
    scanf("%d",&choice);
 
    while(choice!=3) 
    {
        switch(choice){
case 1:   /*затолкнуть значение в стек*/
    printf("Введите целое число: ");
    scanf("%d", &value);
    push(&stackPtr, value);
    printStack(stackPtr);
    break;
case 2: /*вытолкнуть значение из стека*/
    if(!isEmpty(stackPtr))
        printf("Удалить значение %d.\n", 
        pop(&stackPtr));
    printStack(stackPtr);
    break;
default:
    printf("Неверный выбор.\n\n");
    instructions();
    break;
        }
        printf("?");
        scanf("%d", &choice);
    }
    printf("Завершение.\n");
    return 0;
}
 
/*вывести инструкции*/
void instructions(void)
{
    printf("Введите выбор:\n"
        "1  Добавить новый элемент в стек\n"
        "2  Удалить элемент из стека\n"
        "3  Завершить работу программы\n");
}
 
/*удалить значение из вершины стека*/
int pop(StackPtr *top)
{
    StackPtr temp; 
    int popValue;
    temp=*top;
    popValue=(*top)->data;
    *top=(*top)->next;
    free(temp);
    return popValue;
}
 
/*распечатать содержимое стека*/
void printStack(StackPtr current)
{
    if(current==NULL)
        printf("Стек пуст\n\n");
    else {
        printf("Стек:");
 
        while(current!=NULL){
            printf("%d ",current->data);
            current=current->next;
        }
        printf("NULL\n\n");
    }
}
Необходимо функции переписать в виде методов класса. Пытаюсь разобраться с этими самыми классами, но что-то не выходит. С горем пополам хватило сил написать программу хотя бы просто через функции, а как оказалось нужно все через классы. Буду очень признателен, если кто-нибудь поможет исправить код программы на необходимый. Спасибо.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
14.01.2014, 20:58
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Записать функции в виде методов класса (C++):

Оформить функции в виде методов класса - C++
#include &quot;stdafx.h&quot; #include &lt;stdio.h&gt; #include &lt;stdlib.h&gt; #include &lt;locale.h&gt; struct Stack { int data; struct Stack...

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

Напишите реализацию методов, предоставляющих доступ к данным класса. Отобразите в программе работу этих методов - C++
Реализация методов класса. Напишите реализацию методов, предоставляющих доступ к данным класса. Отобразите в программе...

записать в виде отдельной функции - C++
Текст программы: #include &lt;mega128.h&gt; #include &lt;delay.h&gt; void main() { char a=5; DDRD=0xff; while...

Как записать в виде функции? - C++
Написал алгоритм побайтового сравнения двух массивов разной длины... Помогите составить функцию плз... for (int a = 0; a &lt;...

Как вынести описание методов вложенного класса за пределы класса? - C++
Подскажите, пожалуйста, как мне вынести описание методов вложенного класса за пределы класса?

0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
14.01.2014, 20:58
Привет! Вот еще темы с ответами:

Вызов методов класса из двойного указателя на экземпляр класса - C++
Добрый день! Как можно вызвать метод класса по двойному указателя на его экземпляр? struct Point { void getPoint(){}; ...

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

Составить описание класса "3D вектор". Объявить объекты класса и продемонстрировать работу методов - C++
Возникли сложности при решении задачи. Буду признателен тем, кто поможет. Задание: Составить описание класса. Объявить объекты класса...

Какими способами можно использовать функции класса B, как параметры функции Sub класса А? - C++
class A {... void Sub(...); ...} class B : ... { public: float f1(float); float f2(float); ...


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

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

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