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

Раздельная компиляция Namespace - Реализовать двусвязный список - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Как сложить две временные отметки в виде дни часы: минуты: секунды http://www.cyberforum.ru/cpp-beginners/thread1241485.html
Здравствуйте! Подскажите пожалуйста, как сложить две временные отметки в виде дни часы: минуты: секунды? Спасибо!
C++ Обязательно ли объявление виртуального деструктора в абстрактном классе Недавно выполнял задание, и забыл в абстрактном классе(использовалось наследование) объявить виртуальный диструктор. С точки зрения профессионального программирования, является ли это серьёзной ошибкой? http://www.cyberforum.ru/cpp-beginners/thread1241436.html
Поставить пароль на архив C++
Всем привет. Мне нужно программно сделать архив с паролем. Может есть такая библиотека, что бы там была такая функция? Я думаю использовать zlib, а там вроде такого нет, так что придется добавлять самому. Что посоветуете? Спасибо.
Дружественный метод класса и ошибка доступа C++
class B; class A { public: void f(B& b); }; class B { private:
C++ Как подключить obj файл к проекту? http://www.cyberforum.ru/cpp-beginners/thread1241416.html
Всем привет! Нужно подключить obj файл к проекту в котором есть нужный класс. Как это сделать в MVS 2010?
C++ Возможно ли реализовать аналог функции Read из Паскаля? Здравствуйте. Возможно ли в C++ реализовать аналог функции read() из паскаля. Хотя бы с условием, что все входные данные одного типа. Без передачи указателя подробнее

Показать сообщение отдельно
MousePro
49 / 30 / 1
Регистрация: 25.04.2013
Сообщений: 366
12.08.2014, 22:17  [ТС]     Раздельная компиляция Namespace - Реализовать двусвязный список
Блин, ну там в файле интерфейса видно только 2 функции

stack.h
Кликните здесь для просмотра всего текста
C++
1
2
3
4
5
namespace Stack
{
void push(char);
char pop();
}

main
Кликните здесь для просмотра всего текста
C++
1
2
3
4
5
6
#include "stack.h" // Включить интерфейс
void f()
{
   Stack::push('c');
   if(Stack::pop()!='c') error(''Error") // пример
}

stack.c ( в нем определение фукций и стека)
Кликните здесь для просмотра всего текста
C++
1
2
3
4
5
6
7
8
9
10
#include "stack.h" // включить интерфейс
namespace Stack
{
   const int max_size=200;
  char v[max_size];
  int top=0
}
 
void Stack::push (char c) {.....}
char Stack::pop() {.....}


Добавлено через 5 минут
Да, скомпилировал...
Вот только и страуструп пишет по другому... По идее пользователь должен включить файл реализации и ему будет видны только функция pop и push, а в твоей реализации вообще нет смысла иметь файл интерфейса List.h потому как в main все равно будет видна реализация с файла Lists.c...

Добавлено через 13 минут
Как я понял ( я уже сомневаюсь что понял правильно) это сокрытия реализации по аналогии классов, чел подключает чисто интерфейс, а реализация ему не доступна, так же и сам страуструп пишет:
Гарантировать доступ к внутренней структуре стека исключительно через интерфейс пользователя...

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