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

Хранение глобального массива с объектами - C++

Восстановить пароль Регистрация
 
parikmaher534
38 / 38 / 1
Регистрация: 16.11.2011
Сообщений: 112
17.08.2012, 12:21     Хранение глобального массива с объектами #1
Добрый день всем.

У меня есть vector с объектами. И надо чтобы он был доступен по всех классах.( отдельных файлах ).
Чтобы я мог менять его значения по ссылке. Как лучше реализовать такое хранилище?
В виде глобальной переменной - говорят плохо.
Заранее спасибо!
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
17.08.2012, 12:21     Хранение глобального массива с объектами
Посмотрите здесь:

C++ Хранение в памяти массива
C++ Бесконечный вызов дестркутора для глобального объекта
Есть два потока и глобальный массив, могут ли потоки перепутать элементы глобального массива или другого контейнера? C++
C++ Размер внешнего глобального массива
C++ Создание, заполнение объектами и удаление динамического массива. Выдает run time error
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Евгений М.
1033 / 974 / 53
Регистрация: 28.02.2010
Сообщений: 2,817
Завершенные тесты: 2
17.08.2012, 12:44     Хранение глобального массива с объектами #2
Создайте класс со статической переменной (ваш вектор) и используйте ее в других классах.

Цитата Сообщение от parikmaher534 Посмотреть сообщение
В виде глобальной переменной - говорят плохо.
Почему?
Catstail
Модератор
 Аватар для Catstail
21451 / 10236 / 1667
Регистрация: 12.02.2012
Сообщений: 17,108
17.08.2012, 12:52     Хранение глобального массива с объектами #3
"Глобальные переменные это плохо" - типичное суждение "правоверного", которые не думает сам, а безоговорочно доверяется источнику. Да, частое и бессистемное использование глобальных переменных снижает надежность кода... А вилка и нож опасны, т.к. это острые предметы. Пользуйтесь вилкой и ножом правильно - и у вас не будет проблем! То же можно сказать и про глобальные переменные (если бы они были столь вредны - их бы исключили из языков).
OhMyGodSoLong
~ Эврика! ~
 Аватар для OhMyGodSoLong
1234 / 983 / 42
Регистрация: 24.07.2012
Сообщений: 2,002
17.08.2012, 12:54     Хранение глобального массива с объектами #4
Статические переменные, глобальные переменные и синглтон — эти слова обозначают одно и то же, просто разными синтаксическими способами. Нужное вам поведение — это именно одна из этих конструкций. (Альтернатива: в каждом классе свой вектор, но все векторы друг о друге знают [или знают кого-то, кто знает про все векторы] и изменения одного копируются во все остальные. Но это как гланды через задницу вырезать.)

Говорят, что это плохо, не от того, что она глобальная переменная доступна всем, а от того, что сложновато тестировать то, что зависит от глобальных переменных напрямую. Но это проблема исключительно тех людей, кто привязывает свои объекты напрямую к глобальным переменным, а не через локальную переменную, которая указывет на нужный объект (хоть локальный, хоть глобальный).
Catstail
Модератор
 Аватар для Catstail
21451 / 10236 / 1667
Регистрация: 12.02.2012
Сообщений: 17,108
31.10.2012, 17:09     Хранение глобального массива с объектами #5
Цитата Сообщение от ~OhMyGodSoLong~ Посмотреть сообщение
а от того, что сложновато тестировать то, что зависит от глобальных переменных
- что, в свою очередь, происходит из-за того, что глобальные переменные доступны всем.
Yandex
Объявления
31.10.2012, 17:09     Хранение глобального массива с объектами
Ответ Создать тему
Опции темы

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