Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.57/14: Рейтинг темы: голосов - 14, средняя оценка - 4.57
 Аватар для taras atavin
4226 / 1796 / 211
Регистрация: 24.11.2009
Сообщений: 27,562

Декларация класса со статическим полем

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

Студворк — интернет-сервис помощи студентам
Не сингелтон, а класс со статическим именно полем, а не экземпляром. Как это пишется, я знаю, если у меня будет реальная задача на такое поле, я её решу. Просто сейчас не могу сочинить пример на эту тему, чтоб был и простым, и осмысленным, но не сингелтоновым, а надо сделать именно для примера фрагмент UML диаграммы классов с атрибутом, принадлежащим одновременно всем экземплярам, сингелтон же сюда вроде бы не лезет концептуально, так как на уровне модели у него единственен экземпляр, а не атриубут. Если у кого есть в проекте под рукой, киньте пожалуйста сюда одну декларацию.
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
08.12.2011, 07:27
Ответы с готовыми решениями:

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

Undefined reference при работе с статическим полем класса
Здравствуйте. Вот пример: class A { public: A(); A(const A&); ~A();

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

10
Эксперт С++
5058 / 3118 / 271
Регистрация: 11.11.2009
Сообщений: 7,044
08.12.2011, 19:56
Например, класс, объекты которого должны во время работы программы при создании получать уникальный 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;
Или вам не то надо было?
1
 Аватар для taras atavin
4226 / 1796 / 211
Регистрация: 24.11.2009
Сообщений: 27,562
09.12.2011, 06:45  [ТС]
Отличный пример, возможно лучший.
0
278 / 174 / 21
Регистрация: 10.07.2011
Сообщений: 441
09.12.2011, 07:25
silent_1991, скажите пожалуйсте, а это специально так задумано что private: дважды повторяется ? если да то почему?
0
Заблокирован
09.12.2011, 07:36
greeezz, читабельность же!
0
 Аватар для taras atavin
4226 / 1796 / 211
Регистрация: 24.11.2009
Сообщений: 27,562
09.12.2011, 07:39  [ТС]
Цитата Сообщение от greeezz Посмотреть сообщение
silent_1991, скажите пожалуйсте, а это специально так задумано что private: дважды повторяется ? если да то почему?
Цитата Сообщение от Bers Посмотреть сообщение
greeezz, читабельность же!
Мне всё равно на UML переводить, а там спецификаторы повторяются.
0
278 / 174 / 21
Регистрация: 10.07.2011
Сообщений: 441
09.12.2011, 07:45
Bers,
taras atavin, ну я думал может есть какая-то интересная мега хитрость в связи с этим... мало ли.
0
Эксперт С++
 Аватар для fasked
5045 / 2624 / 241
Регистрация: 07.10.2009
Сообщений: 4,310
Записей в блоге: 5
09.12.2011, 14:33
Цитата Сообщение от silent_1991 Посмотреть сообщение
объекты которого должны во время работы программы при создании получать уникальный ID. Тогда current_id - статическое поле, которое увеличивается в конструктора. Простейший пример
На этот же код - счетчик созданных объектов данного типа, ну или счетчик существующих - тогда в деструкторе уменьшать статическую переменную.
1
Эксперт С++
5058 / 3118 / 271
Регистрация: 11.11.2009
Сообщений: 7,044
09.12.2011, 17:54
greeezz, нет, хитростей нет, просто логическое разделение. Все поля складываем под один спецификатор, все статические поля - под другой, все тайпдефы - под третий, все методы - под четвёртый и т.д. При комментировании проще и нагляднее будет прокомментировать, какую группу включает в себя каждый спецификатор.
1
 Аватар для taras atavin
4226 / 1796 / 211
Регистрация: 24.11.2009
Сообщений: 27,562
09.12.2011, 18:23  [ТС]
silent_1991, с учётом того, что спрашивал именно я, можно группировать по любому признаку и произвольно повторять/не повторять спецификаторы: я сам группирую только по спецификаторам, но при чтении на иной стиль вообще не обращаю внимания. В готовом же виде будет UML, то есть уже другой язык и особенности оформления потеряются при переводе. Могу завтра запостить, во что превратилась предложенная декларация. Кстати, тоже вполне читабельно.
0
 Аватар для taras atavin
4226 / 1796 / 211
Регистрация: 24.11.2009
Сообщений: 27,562
09.12.2011, 20:21  [ТС]
А нет, уже сегодня:
Изображения
 
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
09.12.2011, 20:21
Помогаю со студенческими работами здесь

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

Дополнить класс статическим полем Count для подсчёта количества созданных экземпляров класса
Дополнить класс статическим полем Count для подсчёта количества созданных экземпляров класса

Дополнить класс статическим полем Count для подсчёта количества созданных экземпляров класса
Дополнить класс статическим полем Count для подсчёта количества созданных экземпляров класса

Работа со статическим полем
Вобщем чето с утра мозг отказывается работать а заставить его то делать надо... Есть такой код public partial class Form1 : Form ...

Создание объекта класса с полем являющимся объектом другого класса
Bill a; cin>>a;//тут я ввел с помощью перегруженного оператора ElementSpiska c; //поля у Spiska(Bill A,int,string,int) ...


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

Или воспользуйтесь поиском по форуму:
11
Ответ Создать тему
Новые блоги и статьи
Программный контроль заполнения реквизита табличной части документа
Maks 02.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: реализовать контроль заполнения реквизита "ПричинаСписания". . .
wmic не является внутренней или внешней командой
Maks 02.04.2026
Решение: DISM / Online / Add-Capability / CapabilityName:WMIC~~~~ Отсюда: https:/ / winitpro. ru/ index. php/ 2025/ 02/ 14/ komanda-wmic-ne-naydena/
Программная установка даты и запрет ее изменения
Maks 02.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: при создании документов установить период списания автоматически. . .
Вывод данных в справочнике через динамический список
Maks 01.04.2026
Реализация из решения ниже выполнена на примере нетипового справочника "Спецтехника" разработанного в конфигурации КА2. Задача: вывести данные из ТЧ нетипового документа. . .
Программное заполнения текстового поля в реквизите формы документа
Maks 01.04.2026
Алгоритм из решения ниже реализован на нетиповом документе "ВыдачаОборудованияНаСпецтехнику" разработанного в конфигурации КА2, в дополнении к предыдущему решению. На форме документа создается. . .
К слову об оптимизации
kumehtar 01.04.2026
Вспоминаю начало 2000-х, университет, когда я писал на Delphi. Тогда среди программистов на форумах активно обсуждали аккуратную работу с памятью: нужно было следить за переменными, вовремя. . .
Идея фильтра интернета (сервер = слой+фильтр).
Hrethgir 31.03.2026
Суть идеи заключается в том, чтобы запустить свой сервер, о чём я если честно мечтал давно и давно приобрёл книгу как это сделать. Но не было причин его запускать. Очумелые учёные напечатали на. . .
Модель здравосоХранения 6. ESG-повестка и устойчивое развитие; углублённый анализ кадрового бренда
anaschu 31.03.2026
В прикрепленном документе раздумья о том, как можно поменять модель в будущем
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru