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

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

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

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

18.09.2013, 15:25. Просмотров 288. Ответов 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++
Добрый день. Помогите разобрать следующую задачу. Всё понятно, кроме этих моментов: if (i < 0) return -i; else return i; if (d <...

Объясните программу по теме "Структуры" - C++
Добрый день. Необходима ваша помощь в решении задачи по теме "Структуры". Есть структура, элементы которой мы заполняем данными о людях. Не...

Объясните программу по теме "Структуры" - C++
Добрый день. Необходима ваша помощь в решении задачи по теме "Структуры". Есть структура, элементы которой мы заполняем данными о людях. У...

В зависимости от времени года "весна", "лето", "осень", "зима" определить погоду "тепло", "жарко", "холодно", "очень холодно" - C++
В зависимости от времени года "весна", "лето", "осень", "зима" определить погоду "тепло", "жарко", "холодно", "очень холодно". Я так...

Реализовать классы "Воин", "Пехотинец", "Винтовка", "Матрос", "Кортик" (наследование) - C++
Разработать программу с использованием наследования классов, реализующую классы: − воин; − пехотинец(винтовка); − матрос(кортик). ...

Объясните, что означает wstring input = L""; и wstring output = L""; ? - C++
Непонятно особенно L"".

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Croessmah
Модератор
Эксперт CЭксперт С++
13133 / 7396 / 828
Регистрация: 27.09.2012
Сообщений: 18,227
Записей в блоге: 3
Завершенные тесты: 1
18.09.2013, 15:28 #2
Ну судя по именам это имя класса
fjay69
85 / 85 / 1
Регистрация: 26.10.2012
Сообщений: 248
18.09.2013, 15:42  [ТС] #3
В этом примере используются не классы, а пространства имён.
Ох, что-то мне подсказывает, что если функция взята из пространства имён Stack, то и её аргументы берутся из Stack, правильно?
Croessmah
Модератор
Эксперт CЭксперт С++
13133 / 7396 / 828
Регистрация: 27.09.2012
Сообщений: 18,227
Записей в блоге: 3
Завершенные тесты: 1
18.09.2013, 15:49 #4
Цитата Сообщение от 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 например) разрешаются в текущем пространстве имен, типы после - в пространстве имен функции.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
18.09.2013, 16:31
Привет! Вот еще темы с ответами:

Объясните разницу между "cin.getline" и "std::getline" - C++
string a; cin.getline(a); getline(cin, a);в чем разница между "cin.getline(a);" и "getline(cin, a);"

Создать абстрактный класс "Издание" и производные классы "Книга", "Статья", "Электронный ресурс" - C++
1. Создать абстрактный класс Издание с методами, позволяющими вывести на экран информацию об издании, а также определить является ли данное...

Создать класс "Книга" с полями "название книги", "количество страниц", "год издания" - C++
Создать класс Книга поля: название книги,количество страниц,год издания методы: вычислить сколько лет книге и количество дней прошедших...

Создать класс "Вентилятор" содержащий в себе классы: "Двигатель", "Контроллер", "Пульт управления" - C++
Помогите с кодом написания задачи, не понимаю как написать классы в классе. Нужно создать класс "вентилятор" содержащий в себе классы:...


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

Или воспользуйтесь поиском по форуму:
Yandex
Объявления
18.09.2013, 16:31
Ответ Создать тему
Опции темы

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