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

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

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 13, средняя оценка - 4.69
taras atavin
Ушёл с форума.
3569 / 1752 / 91
Регистрация: 24.11.2009
Сообщений: 27,619
#1

[C++] декларация класса со статическим полем - C++

08.12.2011, 07:27. Просмотров 1631. Ответов 10
Метки нет (Все метки)

Не сингелтон, а класс со статическим именно полем, а не экземпляром. Как это пишется, я знаю, если у меня будет реальная задача на такое поле, я её решу. Просто сейчас не могу сочинить пример на эту тему, чтоб был и простым, и осмысленным, но не сингелтоновым, а надо сделать именно для примера фрагмент UML диаграммы классов с атрибутом, принадлежащим одновременно всем экземплярам, сингелтон же сюда вроде бы не лезет концептуально, так как на уровне модели у него единственен экземпляр, а не атриубут. Если у кого есть в проекте под рукой, киньте пожалуйста сюда одну декларацию.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
08.12.2011, 07:27     [C++] декларация класса со статическим полем
Посмотрите здесь:

Работа со статическим полем класса - C++
Добрый вечер. Подскажите, как добавить в вектор какое-либо значение в этом случае? Ошибка 2001 вылазит, неразрешенный внешний символ... ...

Беда со статическим полем - C++
Всем привет! такой вопрос: #include "stdafx.h" #include <stdio.h> #include <stdlib.h> #include <conio.h> #include...

Декларация класса полинома - C++
Как лучше задекларировать класс полинома n-ного порядка от m различных x с мультипликативными членами суммарной степени <=n? Например, при...

Пример класса со статическим членом - C++
Привести пример со статическим членом класса и примеры доступа к нему.

Ошибка, связанная со статическим членом класса - C++
Есть код: class Foo{ public: static void f(); int a; }; void Foo::f(){ std::cin >> a; }

Linker error с приватным статическим членом класса - C++
class Point3d { private: int x; int y; int z; static...

Инициализация вектора статическим массивом в конструкторе класса - C++
Доброго всем времени суток!Помогите разобраться.Есть класс.Нужно вектор заполнить из статического массива,своего рода константной таблицей....

После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
silent_1991
Эксперт С++
4958 / 3034 / 149
Регистрация: 11.11.2009
Сообщений: 7,027
Завершенные тесты: 1
08.12.2011, 19:56     [C++] декларация класса со статическим полем #2
Например, класс, объекты которого должны во время работы программы при создании получать уникальный ID. Тогда current_id - статическое поле, которое увеличивается в конструктора. Простейший пример:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
class UniqueID
{
public:
    UniqueID():
    m_id(current_id++)
    {
    }
 
private:
    static unsigned current_id;
 
private:
    unsigned m_id;
};
 
unsigned UniqueID::current_id = 0;
Или вам не то надо было?
taras atavin
Ушёл с форума.
3569 / 1752 / 91
Регистрация: 24.11.2009
Сообщений: 27,619
09.12.2011, 06:45  [ТС]     [C++] декларация класса со статическим полем #3
Отличный пример, возможно лучший.
greeezz
272 / 165 / 4
Регистрация: 10.07.2011
Сообщений: 441
09.12.2011, 07:25     [C++] декларация класса со статическим полем #4
silent_1991, скажите пожалуйсте, а это специально так задумано что private: дважды повторяется ? если да то почему?
Bers
Заблокирован
09.12.2011, 07:36     [C++] декларация класса со статическим полем #5
greeezz, читабельность же!
taras atavin
Ушёл с форума.
3569 / 1752 / 91
Регистрация: 24.11.2009
Сообщений: 27,619
09.12.2011, 07:39  [ТС]     [C++] декларация класса со статическим полем #6
Цитата Сообщение от greeezz Посмотреть сообщение
silent_1991, скажите пожалуйсте, а это специально так задумано что private: дважды повторяется ? если да то почему?
Цитата Сообщение от Bers Посмотреть сообщение
greeezz, читабельность же!
Мне всё равно на UML переводить, а там спецификаторы повторяются.
greeezz
272 / 165 / 4
Регистрация: 10.07.2011
Сообщений: 441
09.12.2011, 07:45     [C++] декларация класса со статическим полем #7
Bers,
taras atavin, ну я думал может есть какая-то интересная мега хитрость в связи с этим... мало ли.
fasked
Эксперт С++
4933 / 2513 / 180
Регистрация: 07.10.2009
Сообщений: 4,311
Записей в блоге: 1
09.12.2011, 14:33     [C++] декларация класса со статическим полем #8
Цитата Сообщение от silent_1991 Посмотреть сообщение
объекты которого должны во время работы программы при создании получать уникальный ID. Тогда current_id - статическое поле, которое увеличивается в конструктора. Простейший пример
На этот же код - счетчик созданных объектов данного типа, ну или счетчик существующих - тогда в деструкторе уменьшать статическую переменную.
silent_1991
Эксперт С++
4958 / 3034 / 149
Регистрация: 11.11.2009
Сообщений: 7,027
Завершенные тесты: 1
09.12.2011, 17:54     [C++] декларация класса со статическим полем #9
greeezz, нет, хитростей нет, просто логическое разделение. Все поля складываем под один спецификатор, все статические поля - под другой, все тайпдефы - под третий, все методы - под четвёртый и т.д. При комментировании проще и нагляднее будет прокомментировать, какую группу включает в себя каждый спецификатор.
taras atavin
Ушёл с форума.
3569 / 1752 / 91
Регистрация: 24.11.2009
Сообщений: 27,619
09.12.2011, 18:23  [ТС]     [C++] декларация класса со статическим полем #10
silent_1991, с учётом того, что спрашивал именно я, можно группировать по любому признаку и произвольно повторять/не повторять спецификаторы: я сам группирую только по спецификаторам, но при чтении на иной стиль вообще не обращаю внимания. В готовом же виде будет UML, то есть уже другой язык и особенности оформления потеряются при переводе. Могу завтра запостить, во что превратилась предложенная декларация. Кстати, тоже вполне читабельно.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
09.12.2011, 20:21     [C++] декларация класса со статическим полем
Еще ссылки по теме:

Удаление переменных в куче, созданных статическим методом класса - C++
Добрый вечер форумчане. При изучении паттернов проектирования наткнулся на следующий код: #include <iostream> #include <assert.h> ...

Как сделать stl::stack полем класса - C++
Здравствуйте! Столкнулся с такой проблемой - как сделать полем класса какой либо из STL контейнеров или stack? На такую запись...

Перегрузка потокового ввода/вывода для класса с полем типа string - C++
Возможно ли перегрузить >> и << или придётся заменить переменную string на массив char? У меня ошибка появляется: "бинарный "<<": не...

Указатели и классы: присвоение значения элементу массива, который является полем класса - C++
Доброго времени суток, делал задание, где надо создать класс, полем которого будет массив указателей на другие массивы и перегрузить...

Предварительная декларация - C++
Как известно, подключать хидеры в хидеры нехорошо. Вместо этого рекомендуется использовать предварительную декларацию. Как использовать её...


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

Или воспользуйтесь поиском по форуму:
taras atavin
Ушёл с форума.
3569 / 1752 / 91
Регистрация: 24.11.2009
Сообщений: 27,619
09.12.2011, 20:21  [ТС]     [C++] декларация класса со статическим полем #11
А нет, уже сегодня:
Изображения
 
Yandex
Объявления
09.12.2011, 20:21     [C++] декларация класса со статическим полем
Ответ Создать тему
Опции темы

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