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

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

Войти
Регистрация
Восстановить пароль
 
fjay69
 Аватар для fjay69
85 / 85 / 1
Регистрация: 26.10.2012
Сообщений: 248
#1

Объясните по теме "Пространства имён" - C++

18.09.2013, 15:25. Просмотров 274. Ответов 5
Метки нет (Все метки)

Разбираю пример из Страуструпа (спец.изд.,2011), стр. 70-71.
Есть заголовочный файл stack.h, где в пространстве имён Stack объявлены
C++
1
2
3
4
5
6
7
struct Rep;
typedef Rep& stack;
 
stack create();
void destroy(stack s);
void push(stack s, char c);
char pop(stack s);
В файле с реализацией стека stack.cpp
C++
1
2
3
4
5
6
#include "stack.h"
 
Stack::stack Stack::create() { }//почему здесь для stack требуется указывать пространство имён
void Stack::destroy (stack s) { }//а здесь не требуется?
void Stack::push (stack s, char c) { }
char Stack::pop (stack s) { }
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
18.09.2013, 15:25     Объясните по теме "Пространства имён"
Посмотрите здесь:

C++ Помогите придумать несложную задачку по теме "Шаблоны классов"
C++ Подключение пространства имён
C++ Теория по теме "классы"
C++ Посоветуйте литературу по теме "Компьютерная графика и аналитическая геометрия"
C++ Undefined reference to. и пространства имён
C++ Задача по теме "Кондитерские изделия", классы
C++ Объясните программу по теме "Перегрузка функций"
Написать курсовую по теме "Разработка архитектуры и компонентов системы и автоматизации автосервиса" C++
Пространства имён с++ C++
C++ Объясните программу по теме "Структуры"
C++ Объясните программу по теме "Структуры"
C++ Написание програмы по теме "строки" через функцию

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Croessmah
Модератор
Эксперт CЭксперт С++
 Аватар для Croessmah
12537 / 7099 / 797
Регистрация: 27.09.2012
Сообщений: 17,521
Записей в блоге: 2
Завершенные тесты: 1
18.09.2013, 15:28     Объясните по теме "Пространства имён" #2
Ну судя по именам это имя класса
fjay69
 Аватар для fjay69
85 / 85 / 1
Регистрация: 26.10.2012
Сообщений: 248
18.09.2013, 15:42  [ТС]     Объясните по теме "Пространства имён" #3
В этом примере используются не классы, а пространства имён.
Ох, что-то мне подсказывает, что если функция взята из пространства имён Stack, то и её аргументы берутся из Stack, правильно?
Croessmah
Модератор
Эксперт CЭксперт С++
 Аватар для Croessmah
12537 / 7099 / 797
Регистрация: 27.09.2012
Сообщений: 17,521
Записей в блоге: 2
Завершенные тесты: 1
18.09.2013, 15:49     Объясните по теме "Пространства имён" #4
Цитата Сообщение от fjay69 Посмотреть сообщение
В этом примере используются не классы, а пространства имён.
тогда объясните почему Вы думаете что не нужно указывать пространство имен?
fjay69
 Аватар для fjay69
85 / 85 / 1
Регистрация: 26.10.2012
Сообщений: 248
18.09.2013, 15:50  [ТС]     Объясните по теме "Пространства имён" #5
Так думаю не я, а компилятор.
Fyret
184 / 170 / 13
Регистрация: 30.07.2013
Сообщений: 359
18.09.2013, 16:31     Объясните по теме "Пространства имён" #6
Все честно и по Стандарту (3.4.3/3): типы до имени функции (Stack::create например) разрешаются в текущем пространстве имен, типы после - в пространстве имен функции.
Yandex
Объявления
18.09.2013, 16:31     Объясните по теме "Пространства имён"
Ответ Создать тему
Опции темы

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