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

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

Войти
Регистрация
Восстановить пароль
 
blrcatalyst
0 / 0 / 0
Регистрация: 21.01.2013
Сообщений: 21
#1

Использование пространства имен - C++

10.04.2013, 08:50. Просмотров 627. Ответов 5
Метки нет (Все метки)

Заголовочный файл с осн функциями двунаправленного списка.Нужно построить на его основе стек и очередь с обобщенным интерфейсом т.е названия функций одинаковое.Для этого нужно использовать естественно namespace.вот и вопрос как их тут расставить? допусти namespace stack и queue.просто внутри структуры нельзя а захватывая структуру у меня не получалось=( Как сделать стек и дек я знаю это рассказывать не надо)
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
51
#pragma once 
#define LISTNULL (Element*)-1 
 
 struct Element                              // элемент списка 
 { 
  Element* Prev;                             // указатель на предыдущий элемент 
  Element* Next;                             // указатель на следующий элемент 
  void*    Data;                             //  данные  
  Element(Element* prev, void* data,  Element* next) // конструктор
  {
   Prev = prev;
   Data = data;
   Next = next;
  }
  Element* GetNext(){return Next;};          // получить следующий
  Element* GetPrev(){return Prev;};          // получить предыдущий
  
  }; 
 static Element* NIL = LISTNULL;              // обозначение пустоты 
 enum Permit                                 // общие разрешения на операции со списком
 {
   ALL = 0,               // all permit
   NOINSERT =1,           // lock INSERT
   NODELETE =2,           // lock DELETE
   NOUPDATE =3            // =  NOINSERT NOUPDATE             
  };
 struct Object                              // блок управления списком 
 {
  Element* Head;                            // указатель на начало списка
  Object(){Head = NULL;};
  Element* GetFirst(){return Head;};        // получить первый элемент списка 
  Element* GetLast();                       // получить последний элемент списка
  Element* Search (void* data);             // найти  первый элемент по данным 
  int Count();//сделано                         // подсчет элементов
  Element* FindMax(Element* data);
  bool Insert(void* data);                  // добавить элемент в начало
  bool InsertEnd(void* data);//сделано          // добавить в конец !!!!!!!!!!!!!!
  bool Delete(Element* e);                  // удалить по адресу элемента 
  bool Delete(void* data);                  // удалить первый по данным
  static Permit Perm;                       // разрешение на операции -- общее для всех экземпляров Object (static !!!)
  bool isLockInsert(){return (Perm == NOINSERT || Perm == NOUPDATE);};     // блокировано добавление ? 
  bool isLockDelete(){return (Perm == NODELETE || Perm == NOUPDATE);}      // блокировано удаление ? 
  bool isListEmpty(){return (Head==NULL);};
  void DeleteList();//                      // очистить список !!!!!!!!!!!!!
 
 };
 Object Create();                           // создать список
    bool AppendList(Object& to, const Object& from);  //добавить !!!!!!!!!!!!!!
    bool CopyList(Object& to, const Object& from);   // копировать !!!!!!!!!!!!!!!!
 
#undef LISTNULL
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
10.04.2013, 08:50     Использование пространства имен
Посмотрите здесь:

Использование пространства имен - C++
Написать программу, использующую описанные типы данных: инициализация переменных (ввод пользователя), выполнение действий (в зависимости от...

Использование имен предопределенных объектов в качестве имен переменных - C++
Есть код: #include <iostream> using namespace std; void func() { int cout; cout <<cout <<endl; }

Пространства имен в Эклипс - C++
Добрый день. Переношу свой проект из IAR на Eclipse+Yagarto(gcc 4.6.2) Подскажите, из-за чего в hpp модулях проекта может не...

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

Пространства имен и перегрузка функций - C++
описание: есть библиотека. Пространство имен namespace1, в нем есть несколько перегруженных функций func(). // header.h #ifndef...

Отличия пространства имен от структуры - C++
Есть ли разница между пространством имен и структурой? По-моему почти одно и то же

После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
dstat
36 / 38 / 1
Регистрация: 01.06.2011
Сообщений: 238
10.04.2013, 09:06     Использование пространства имен #2
сделать namespace на все, в этом namespace будут уникальные объявления
blrcatalyst
0 / 0 / 0
Регистрация: 21.01.2013
Сообщений: 21
10.04.2013, 10:41  [ТС]     Использование пространства имен #3
на все не могу т.к список должен создаться один а функция create привязана к object и получается что я не могу перегрузит эту функцию иии пичаль(

Добавлено через 1 минуту
или мне вообще ВСЕ в namespace и консруктор итд?
dstat
36 / 38 / 1
Регистрация: 01.06.2011
Сообщений: 238
10.04.2013, 11:02     Использование пространства имен #4
да, вообще все. а если где то нужно использовать описанный класс внутри namespace , то писать
имя_nampespace::класс
имя_nampespace::функция
blrcatalyst
0 / 0 / 0
Регистрация: 21.01.2013
Сообщений: 21
10.04.2013, 14:58  [ТС]     Использование пространства имен #5
Для всех выходных данных обновления не требуется.
1>6laba.obj : error LNK2019: ссылка на неразрешенный внешний символ "struct stack::Object __cdecl stack::Create(void)" (?Create@stack@@YA?AUObject@1@XZ) в функции _wmain
1>C:\Users\NetBook\Documents\Visual Studio 2010\Projects\6laba\Debug\6laba.exe : fatal error LNK1120: 1 неразрешенных внешних элементов
1>

Добавлено через 15 минут
без namespace все ок.помогите что не так( в имя всунул все кроме дефайнов
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
10.04.2013, 17:06     Использование пространства имен
Еще ссылки по теме:

Столкнулся с ошибкой пространства имен - C++
Столкнулся с такой ошибкой: error C2871: System: пространство имен с таким именем не существует. Стоит четвертый Framework. В нем проблема?

Область видимости, пространства имен - C++
имею макрос #define max(a,b) (((a) > (b)) ? (a) : (b)) он определен в Windows.h, который мне нужен в проекте... также мне нужна...

Неименованные пространства имен - разобрать код - C++
Всем доброго дня !!! При изучении темы неименованные пространства имен столкнулся с проблемой. Автор привел такой код. В...

Как избавиться от явного указания пространства имен - C++
Есть класс, который нужно вынести в другой файл. Соответственно что делаю: 1. Описание класса в *.h файл 2. Реализацию методов...

как сократить название пространства имен namespace не убирая полностью ? - C++
Существует ли какой-нибудь способ сократить путь во вложенном пространстве имен путем замены на другое более короткое название, но...

Как получить доступ к именам пространства имен из другого файла - C++
Помогите мне разобраться: Если определено пространство имен в одном cpp файле, как использовать одно из имен в другом cpp. Пробую что-то...


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

Или воспользуйтесь поиском по форуму:
dstat
36 / 38 / 1
Регистрация: 01.06.2011
Сообщений: 238
10.04.2013, 17:06     Использование пространства имен #6
C++
1
2
3
4
5
6
7
8
9
10
11
namespace XXX{
  class CCC{
    public:
      void fff();
  };
}
 
int main(){
   XXX::CCC myobj;
   myobj.fff();
}
Yandex
Объявления
10.04.2013, 17:06     Использование пространства имен
Ответ Создать тему
Опции темы

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