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

Ошибка в получение значения (LIFO) - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Не работает std::cout || std::cin http://www.cyberforum.ru/cpp-beginners/thread928772.html
#include "Account.h" #include <string> #include <iostream> using std::cout; Account :: Account(int startBalance) { setBalance(startBalance); }
C++ Вычислить значение выражения жестокая задачка http://www.cyberforum.ru/cpp-beginners/thread928751.html
Указатель, выделение памяти под него C++
подскажите: int *var; *var = 1; и int *var = new int(1); эти 2 разные записи делают одно и тоже? т.е. первая запись тоже выделяет память под указатель? Просто на сколько я вычитал объявляя указатель, я должен обязательно под него выделить память используя оператор new, но в 1-м примере нет оператора new.
Подскажите как написать такое дерево (или БД) C++
Задача состоит в том, чтобы построить структуру данных по заданному рекурсивному расписанию каталогов. Причем:Все узлы отсортированны по порядковому номеру, в каждом узле должно быть имя, индекс родителя, сортированный вектор из индексов детей. Вот пример: . ./download_client.sh ./random1000_queries_sport.txt ./times.txt ./site ./site/site_kz_domains_random1000_2011-07-26.txt...
C++ Не видит конструктор http://www.cyberforum.ru/cpp-beginners/thread928740.html
Приветсвую всех! В общем у меня небольшая проблемка, с которой собственными силами разобраться не смог... Только начиню создавать класс , там определены конструктор и деструктор. Но появляется проблема с созданием экземпляра. Компилятор ругается на неразрешенный символ при вызове конструктора. Во вложениях видно что из экземпляра класса конструктор не доступен (1 картинка), а в самом классе...
C++ C++ файлы ifstream/ofstream запись класса Доброе время суток дамы и господа :) необходимо помочь ибо что-то голова не варит )) класс #pragma once #include <iostream> using namespace std; class date { int day; int mounth; int year; подробнее

Показать сообщение отдельно
итернал
4 / 4 / 0
Регистрация: 17.09.2012
Сообщений: 290
Завершенные тесты: 1
25.07.2013, 20:07     Ошибка в получение значения (LIFO)
C++
1
2
3
4
5
6
7
8
9
10
11
12
bool CStack::GetVal( int &val)
{
    if(pFirst==NULL)
        return 0;
    else
    {
        val=pFirst->val;
    }
    Elem *pCur=pFirst;
    pFirst=pFirst->pNext;
    delete pFirst;
}
весь код у меня работает правильно, но вот после вызова даного метода получается ошибка какае-то
может я что не так делаю, у меня вывод не последний элемент как должно, а первый, да и потом сам стек меняется как-то
если что вот весь код, подскажите где я напортачил если не сложно, может я зря грешу на данный метод, а ошибка в другом месте
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
#include <iostream>
using namespace std; 
class CStack
{
    int size;
    struct Elem
    {
        Elem *pNext;
        int val;
    };
    Elem *pFirst;
    public:
        CStack():size(0),pFirst(NULL) 
        {}
        ~CStack();
        void SetVal(int val);
        bool GetVal(int &val);
        void ShowStack();
};
void CStack::SetVal(int val)
{
    Elem *pNew=new Elem;
    pNew->pNext=NULL;
    pNew->val=val;
    if(pFirst==NULL)
        pFirst=pNew;
    else
    {
        Elem *pCur;
        pCur=pFirst;
        while(pCur->pNext!=NULL)
            pCur=pCur->pNext;
        pCur->pNext=pNew;
    }
    size++;
}
void CStack::ShowStack()
{
    Elem *pCur=pFirst;
    if(pCur!=NULL)
        while(pCur->pNext!=NULL)
        {
            cout<<pCur->val<<"\t";
            pCur=pCur->pNext;
        }
        cout<<pCur->val<<endl;
}
bool CStack::GetVal( int &val)
{
    if(pFirst==NULL)
        return 0;
    else
    {
        val=pFirst->val;
    }
    Elem *pCur=pFirst;
    pFirst=pFirst->pNext;
    delete pFirst;
}
CStack::~CStack()
{
    Elem *pCur;
    while(pFirst!=NULL)
    {
        pCur=pFirst;
        pFirst=pFirst->pNext;
        delete pCur;
    }
}
void main()
{
    int v;
    CStack s;
    while(1)
    {
        cout <<"Vvedite znachenie: "<<endl;
        cin>>v;
        s.SetVal(v);
        cout<<"Prodolgit?"<<endl;
        cin>>v;
        if(v!=1)
            break;
    }
    s.ShowStack();
    s.GetVal(v);
    cout<<"Poslednij element: "<<v<<endl;
    s.ShowStack();
    scanf("%i");
}
Добавлено через 2 минуты
может тут надо как-то с size работать, ну при получение значения, оно же у меня считает количество элементов, а тут я его не использую, просто непонимаю зачем оно мне тут, но вводил для отнимания
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 00:38. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru