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

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

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ namespace Страуструп 3-е издание http://www.cyberforum.ru/cpp-beginners/thread342566.html
Добрый вечер народ) Читаю книгу Страуструпа 3-е издание там встретился такой фрагмент кода: namespace Stack { void push(char); char pop(); } void...
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++. Поскольку я почти ничего не смыслю в программировании, то мне необходима помощь тех, кто бы смог тыкнуть носом в ошибки. Задание в книге...
Сбор release версии программы с++, на MinGW C++
Есть такая проблема: компилирую программу из под Windows 7, на MinGW g++ -o test.exe test.cpp например. Я не пользуюсь средами, так как они мне пока не нужны, и все компилирую с консоли. ...
C++ Тема для диплома http://www.cyberforum.ru/cpp-beginners/thread342534.html
Помогите подобрать тему для дипломной работы! Хочу чтобы диплом включал в себя возможность показать знание язака программирования,а также чтобы в нем была задействованна практическая предметная...
C++ Итератор ? Как выглядит итератор на вложеный контейнер? Например осуществить доступ к 1-му символу 3-го элемента в векторе vector< <vecrot<char> > vec через индекс можно так vec. А как через итератор? подробнее

Показать сообщение отдельно
morphling
-9 / 19 / 1
Регистрация: 26.06.2010
Сообщений: 181
16.08.2011, 22:35  [ТС]
Цитата Сообщение от rangerx Посмотреть сообщение
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");
}
[ILINK32 Error] Error: Unresolved external '_main' referenced from D:\C++ BUILDER\LIB\WIN32\RELEASE\C0X32.OBJ

вот ошибка на ваш код ыыы...))

Добавлено через 10 минут
все исправил оказывается при описании функций тоже имя пространств имен надо указывать))) спасибо всем.... еще кто нибудь объяснит заччем нужно это простронство имен?
0
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru