Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.50/4: Рейтинг темы: голосов - 4, средняя оценка - 4.50
1 / 1 / 1
Регистрация: 26.04.2014
Сообщений: 119

Как избежать использование глобальных объектов

29.08.2014, 14:03. Показов 927. Ответов 6
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Есть два класса. В первом классе должен быть метод, который работает с объектами второго класса. Все получается, если создавать глобальные объекты второго класса, и использовать их в определении первого класса. Решил избавиться от глобальных объектов, переместил их в main, теперь конечно же первый класс не видит их. Как организовать, чтобы видел? Спасибо.
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
29.08.2014, 14:03
Ответы с готовыми решениями:

Использование глобальных переменных - моветон ли?
Ребят, очень часто вижу как отцы С++, когда проверяют чей-то код и обнаруживают там глобальные переменные, заявляют, что это не хорошо, что...

Как разбить программу на функции (использование глобальных переменных не допускается)?
int main() { char c; int str=0, stb=0; int **a = NULL, **b = NULL; bool a1 = false, a2 = false; do {

Как избежать смены 3d вида при движении объектов?
если применить к объекту rotationX,Y,Z - и потом изменять его координаты - то и этот вид меняется из за его движения относительно центра. ...

6
БНТУ ФИТР
 Аватар для kventin_zhuk
215 / 155 / 42
Регистрация: 26.12.2012
Сообщений: 382
29.08.2014, 14:21
Artem93z, передать объект/объекты второго класса в конструктор/метод первого класса.
0
1 / 1 / 1
Регистрация: 26.04.2014
Сообщений: 119
29.08.2014, 15:14  [ТС]
kventin_zhuk, так не пойдет, объекты должны существовать по отдельности. допустим это 2 графических объекта. один объект приближается ко второму, и когда он достаточно близко - вызывается метод первого объекта, и что-то происходит. делает проверку расстояния между ними будет метод первого объекта. но откуда он возьмет информацию про нахождение второго объекта, если второй объект вне тела класса первого объекта?вот.
0
2393 / 1922 / 763
Регистрация: 27.07.2012
Сообщений: 5,564
29.08.2014, 15:18
Цитата Сообщение от Artem93z Посмотреть сообщение
делает проверку расстояния между ними будет метод первого объекта.
Ну вот тут и нелогичность. Если объекты ничего не знают друг о друге, то и проверку расстояния между ними должен делать какой-то другая функция, а не функция класса этих объектов.
1
БНТУ ФИТР
 Аватар для kventin_zhuk
215 / 155 / 42
Регистрация: 26.12.2012
Сообщений: 382
29.08.2014, 15:19
Artem93z, Они и будут по отдельности существовать. Или вложите эти два объекта в третий и в нем напишите метод аля Colision
1
1 / 1 / 1
Регистрация: 26.04.2014
Сообщений: 119
29.08.2014, 15:22  [ТС]
John Prick, пока писал вопрос, сам об этом подумал. да, надо что-то менять.
kventin_zhuk, попробую сделать третий класс.
0
694 / 304 / 99
Регистрация: 04.07.2014
Сообщений: 851
29.08.2014, 15:26
Цитата Сообщение от kventin_zhuk Посмотреть сообщение
Или вложите эти два объекта в третий и в нем напишите метод аля Colision
+1 Всё верно.
Цитата Сообщение от Artem93z Посмотреть сообщение
и когда он достаточно близко - вызывается метод первого объекта
У тебя должен быть метод, который контролирует объекты. и при наступлении события вызывать метод Booom(o1,o2). А твои классы должны дать минимально необходимый функционал, что бы их состояния изменились в Booom
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
29.08.2014, 15:26
Помогаю со студенческими работами здесь

Как избежать использование оператора goto
во всех книжках по си пишут, что лучше метки и goto не использовать. типа плохой тон. и так все прекрасно пишется без переходов. и вот...

Пнуть конструкторы глобальных объектов.
Товарищи друзья! Может хоть вы знаете, как загрузчик С++ программы должен запускать конструкторы глобальных объектов... Мозг...

Использование глобальных переменных
Доброго времени суток всем! Есть такая задача. Задать значение переменной. затем инклудить скрипт и уже внутри него обработать эту...

Использование глобальных переменных
Доброго времени суток, уважаемые форумчане! Такой вопрос - почему использование глобальных переменных считается плохим тоном? Если дело...

Использование глобальных переменных
Добрый всем день! Использую глобальную переменную для хранения значения в пределах одного сеанса работы программы. Например, текущий год...


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

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
Новые блоги и статьи
SDL3 для Desktop (MinGW): Создаём пустое окно с нуля для 2D-графики на SDL3, Си и C++
8Observer8 10.03.2026
Содержание блога Финальные проекты на Си и на C++: hello-sdl3-c. zip hello-sdl3-cpp. zip Результат:
Установка CMake и MinGW 13.1 для сборки С и C++ приложений из консоли и из Qt Creator в EXE
8Observer8 10.03.2026
Содержание блога MinGW - это коллекция инструментов для сборки приложений в EXE. CMake - это система сборки приложений. Здесь описаны базовые шаги для старта программирования с помощью CMake и. . .
Как дизайн сайта влияет на конверсию: 7 решений, которые реально повышают заявки
Neotwalker 08.03.2026
Многие до сих пор воспринимают дизайн сайта как “красивую оболочку”. На практике всё иначе: дизайн напрямую влияет на то, оставит человек заявку или уйдёт через несколько секунд. Даже если у вас. . .
Модульная разработка через nuget packages
DevAlt 07.03.2026
Сложившийся в . Net-среде способ разработки чаще всего предполагает монорепозиторий в котором находятся все исходники. При создании нового решения, мы просто добавляем нужные проекты и имеем. . .
Модульный подход на примере F#
DevAlt 06.03.2026
В блоге дяди Боба наткнулся на такое определение: В этой книге («Подход, основанный на вариантах использования») Ивар утверждает, что архитектура программного обеспечения — это структуры,. . .
Управление камерой с помощью скрипта OrbitControls.js на Three.js: Вращение, зум и панорамирование
8Observer8 05.03.2026
Содержание блога Финальная демка в браузере работает на Desktop и мобильных браузерах. Итоговый код: orbit-controls-threejs-js. zip. Сканируйте QR-код на мобильном. Вращайте камеру одним пальцем,. . .
SDL3 для Web (WebAssembly): Синхронизация спрайтов SDL3 и тел Box2D
8Observer8 04.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-sync-physics-sprites-sdl3-c. zip На первой гифке отладочные линии отключены, а на второй включены:. . .
SDL3 для Web (WebAssembly): Идентификация объектов на Box2D v3 - использование userData и событий коллизий
8Observer8 02.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-collision-events-sdl3-c. zip Сканируйте QR-код на мобильном и вы увидите, что появится джойстик для управления главным героем. . . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru