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

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

Войти
Регистрация
Восстановить пароль
 
parikmaher534
38 / 38 / 1
Регистрация: 16.11.2011
Сообщений: 112
#1

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

17.08.2012, 12:21. Просмотров 434. Ответов 4
Метки нет (Все метки)

Добрый день всем.

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

Размер внешнего глобального массива - C++
У меня возник такой вопрос : Есть глобальный массив в одном файле: //1.cpp int arr = {4,6,0,1,2}; Есть код в другом файле, ...

Объявление и определение глобального массива структуры - C++
Есть структура struct DatSob { int year; // Год события int month; // Месяц события int day; // день события...

Есть два потока и глобальный массив, могут ли потоки перепутать элементы глобального массива или другого контейнера? - C++
Начать с массивов, допустим То есть ситуация такая: пусть имеется два потока и глобальный массив элементов int из двух элементов, один...

Сортировка массива с объектами класса - C++
#include <iostream> #include <string> using namespace std; class tovary { private: string name; double cina; int kod; ...

Работа с объектами. Код вылетает сразу после инициализации элементов массива - C++
Код вылетает сразу после инициализации элементов массива. Не могу засечь в чем проблема. Не подскажете? Буду благодарен. #include...

Создание, заполнение объектами и удаление динамического массива. Выдает run time error - C++
Компилятор ни на что не ругается, но консоль вылетает с виндовской ошибкой #ifndef Point_HPP // anti multiply including gates ...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Евгений М.
1035 / 976 / 54
Регистрация: 28.02.2010
Сообщений: 2,829
Завершенные тесты: 2
17.08.2012, 12:44 #2
Создайте класс со статической переменной (ваш вектор) и используйте ее в других классах.

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

Говорят, что это плохо, не от того, что она глобальная переменная доступна всем, а от того, что сложновато тестировать то, что зависит от глобальных переменных напрямую. Но это проблема исключительно тех людей, кто привязывает свои объекты напрямую к глобальным переменным, а не через локальную переменную, которая указывет на нужный объект (хоть локальный, хоть глобальный).
1
Catstail
Модератор
22615 / 10976 / 1779
Регистрация: 12.02.2012
Сообщений: 18,117
31.10.2012, 17:09 #5
Цитата Сообщение от ~OhMyGodSoLong~ Посмотреть сообщение
а от того, что сложновато тестировать то, что зависит от глобальных переменных
- что, в свою очередь, происходит из-за того, что глобальные переменные доступны всем.
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
31.10.2012, 17:09
Привет! Вот еще темы с ответами:

Хранение в памяти массива - C++
В описании функции для передачи 2-мерного массива указывается ( int a ). Когда мы задаём как аргумент функции одномерный массив, скобки в...

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

Бесконечный вызов дестркутора для глобального объекта - C++
Наткнулся в книге на такую задачу - "деструктор класса содержит ф-цию exit(), создайте глобальный объект класса и посмотрите, что...

Нужно ли функции с оператором глобального разрешения ставить сразу за классом,в котором объявлены? - C++
Добрый день! Подскажите, пожалуйста, обязательно ли функция или конструктор от определённого класса и вынесенные за пределы класса, с...


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

Или воспользуйтесь поиском по форуму:
Yandex
Объявления
31.10.2012, 17:09
Ответ Создать тему
Опции темы

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