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

Абстракция данных...модули определяющие типы - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ namespace Страуструп 3-е издание http://www.cyberforum.ru/cpp-beginners/thread342566.html
Добрый вечер народ) Читаю книгу Страуструпа 3-е издание там встретился такой фрагмент кода: namespace Stack { void push(char); char pop(); } void f() {
C++ Преобразование типа class ne { public: ne(); ~ne(); double x1; char l; }; ne O; ne::~ne(){}; http://www.cyberforum.ru/cpp-beginners/thread342561.html
C++ Необходимо указать на ошибки. Код по заданию из книги.
Начал учить c++ по книге. Компилирую под debian в g++. Поскольку я почти ничего не смыслю в программировании, то мне необходима помощь тех, кто бы смог тыкнуть носом в ошибки. Задание в книге было такое: написать программу, где бы использовался цикл while. Замечания интересны все, от комментариев и имен переменных до синтаксиса и ошибок в коде. P.S. все это компилируется и работает =) ...
Сбор release версии программы с++, на MinGW C++
Есть такая проблема: компилирую программу из под Windows 7, на MinGW g++ -o test.exe test.cpp например. Я не пользуюсь средами, так как они мне пока не нужны, и все компилирую с консоли. Проблема в том что таким образом откомпилированная программа не запускается на Windows xp. Я знаю что в средах Visual Studio или Borland можно поставить галочку release, и тогда программа будет работать...
C++ Тема для диплома http://www.cyberforum.ru/cpp-beginners/thread342534.html
Помогите подобрать тему для дипломной работы! Хочу чтобы диплом включал в себя возможность показать знание язака программирования,а также чтобы в нем была задействованна практическая предметная область.Думаю написать экспертную систему. Хотелось бы услышать ваше мнение!
C++ Итератор ? Как выглядит итератор на вложеный контейнер? Например осуществить доступ к 1-му символу 3-го элемента в векторе vector< <vecrot<char> > vec через индекс можно так vec. А как через итератор? подробнее

Показать сообщение отдельно
rangerx
1932 / 1541 / 141
Регистрация: 31.05.2009
Сообщений: 2,909
16.08.2011, 22:09     Абстракция данных...модули определяющие типы
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
#include <iostream>
#include <stdexcept>
 
namespace Stack
{
    const int max_size = 20;
    char v[max_size];
    int top = 0;
 
    void push(char c)
    {
        if(top == max_size) throw std::runtime_error("stack is full!");
        v[top++] = c;
    }
 
    char pop()
    {
        if(!top) throw std::runtime_error("stack is empty!");
        return v[--top];
    }
}
 
void error(const char* message)
{
    std::cerr << message << '\n';
}
 
void f()
{
    Stack::push('u');
    if(Stack::pop() != 'u') error("impossible");
}
 
 
int main()
{
    f();
    return 0;
}
Добавлено через 3 минуты
Ну, или с использованием прототипов соответственно:
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
#include <iostream>
#include <stdexcept>
 
namespace Stack
{
    const int max_size = 20;
    char v[max_size];
    int top = 0;
 
    void push(char c);
    char pop();
}
 
void error(const char* message);
void f();
 
 
 
//----------------
 
int main()
{
    f();
    return 0;
}
 
//----------------
 
void Stack::push(char c)
{
    if(top == max_size) throw std::runtime_error("stack is full!");
    v[top++] = c;
}
 
char Stack::pop()
{
    if(!top) throw std::runtime_error("stack is empty!");
    return v[--top];
}
 
void error(const char* message)
{
    std::cerr << message << '\n';
}
 
void f()
{
    Stack::push('u');
    if(Stack::pop() != 'u') error("impossible");
}
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru