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

Класс и пространство имен - C++

Восстановить пароль Регистрация
 
Aliru
0 / 0 / 0
Регистрация: 07.05.2013
Сообщений: 83
09.08.2013, 20:55     Класс и пространство имен #1
Есть стэк, а он использует структуру как базовую единицу.
Куда определить описание этой структуры - в пространство имен, а его включить в class?
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
struct customer 
{
    enum e1{str_size = 35};
    char fullname[str_size];
    double payment;
};
 
#ifndef STACK_H_
#define STACK_H_
 
typedef customer Item;
 
class Stack
{
private:
    enum {MAX = 10}; // constant specific to class
    Item items[MAX]; // holds stack items
    int top; // index for top stack item
public:
    Stack();
    bool isempty() const;
    bool isfull() const;
    // push() returns false if stack already is full, true otherwise
    bool push(const Item & item); // add item to stack
    // pop() returns false if stack already is empty, true otherwise
    bool pop(Item & item); // pop top into item
};
#endif
ну то есть вот так:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
namespace n_s_customer
{
struct customer 
{
    enum e1{str_size = 35};
    char fullname[str_size];
    double payment;
};
};
 
#ifndef STACK_H_
#define STACK_H_
 
using n_s_customer::customer;
 
typedef customer Item;
...
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
09.08.2013, 20:55     Класс и пространство имен
Посмотрите здесь:

C++ Пространство имен
C++ пространство имен
Пространство имен std C++
C++ Пространство имен std
пространство имен C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
0x10
2425 / 1597 / 232
Регистрация: 24.11.2012
Сообщений: 3,919
09.08.2013, 21:00     Класс и пространство имен #2
Зачем такие извращения?
ЗЫ Стек так и просится быть шаблонным классом.
Aliru
0 / 0 / 0
Регистрация: 07.05.2013
Сообщений: 83
09.08.2013, 21:06  [ТС]     Класс и пространство имен #3
Ну, это вроде бы как учебный пример - о шаблонах я думаю еще почитаю у Vandervoorde
вопрос не в этом был
IGPIGP
Комп_Оратор)
 Аватар для IGPIGP
6159 / 2888 / 282
Регистрация: 04.12.2011
Сообщений: 7,686
Записей в блоге: 3
09.08.2013, 22:37     Класс и пространство имен #4
Может вот так:
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
#include <iostream>
using namespace std;
namespace nmspc{
struct customer 
{   
int payment;
customer(int pmnt_)
:payment(pmnt_)
{}
};
}
class ClassA{
public:
nmspc::customer cstmr;
 ClassA(int pmnt_)
:cstmr(pmnt_)
{}
};
 int main()
{
 ClassA a(123);
cout<<a.cstmr.payment<<endl;
cin.get();
return 0;
}
Aliru
0 / 0 / 0
Регистрация: 07.05.2013
Сообщений: 83
10.08.2013, 01:17  [ТС]     Класс и пространство имен #5
я просто не совсем понял чем Ваш пример от моего №2 отличается - ну кроме того что у меня он в разных файлах?
Это у меня типа *.h
IGPIGP
Комп_Оратор)
 Аватар для IGPIGP
6159 / 2888 / 282
Регистрация: 04.12.2011
Сообщений: 7,686
Записей в блоге: 3
10.08.2013, 01:30     Класс и пространство имен #6
Цитата Сообщение от Aliru Посмотреть сообщение
я просто не совсем понял чем Ваш пример от моего №2 отличается - ну кроме того что у меня он в разных файлах?
Это у меня типа *.h
Я не посмотрел в концовку Вашего вопроса. Полагал, что это вопрос, а не выступление. Но дело то и не в этом. Вы же спросили как в классе объявить? А то, что я вижу это как в файле (или части файла, т.е. локальной области видимости) объявить. Класс сам по себе пространство имён и довольно специфическое. Внутри класса использовать using не получается, а через прямое разрешение доступа, - получается. Хотя конечно, если объявление using в охватывающей области по отношению к определению класса, то и так можно.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
11.08.2013, 20:24     Класс и пространство имен
Еще ссылки по теме:

Пространство имен C++
C++ Пространство имен
Пространство имен C++

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

Или воспользуйтесь поиском по форуму:
Aliru
0 / 0 / 0
Регистрация: 07.05.2013
Сообщений: 83
11.08.2013, 20:24  [ТС]     Класс и пространство имен #7
То есть Безопасней использовать пр-во имен - правда с поправкой на поиск Кенига, правильно?
А кстати неименованое пр-во имен для этого файла вместо глобального объявления - это бы здесь нормально было-бы?
Yandex
Объявления
11.08.2013, 20:24     Класс и пространство имен
Ответ Создать тему
Опции темы

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