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

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

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

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

09.08.2013, 20:55. Просмотров 527. Ответов 6
Метки нет (Все метки)

Есть стэк, а он использует структуру как базовую единицу.
Куда определить описание этой структуры - в пространство имен, а его включить в 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;
...
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
0x10
2456 / 1628 / 238
Регистрация: 24.11.2012
Сообщений: 4,003
09.08.2013, 21:00     Класс и пространство имен #2
Зачем такие извращения?
ЗЫ Стек так и просится быть шаблонным классом.
Aliru
0 / 0 / 0
Регистрация: 07.05.2013
Сообщений: 83
09.08.2013, 21:06  [ТС]     Класс и пространство имен #3
Ну, это вроде бы как учебный пример - о шаблонах я думаю еще почитаю у Vandervoorde
вопрос не в этом был
IGPIGP
Комп_Оратор)
Эксперт по математике/физике
6411 / 3050 / 300
Регистрация: 04.12.2011
Сообщений: 8,245
Записей в блоге: 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
Комп_Оратор)
Эксперт по математике/физике
6411 / 3050 / 300
Регистрация: 04.12.2011
Сообщений: 8,245
Записей в блоге: 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++ Пространство имен
Пространство имен C++
C++ Пространство имен

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

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

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