У меня есть main.cpp и некоторые классы, каждый из которых определяется в двух файлах: заголовок и .cpp-файл. в main.cpp у меня есть 2d вектор. Я хочу использовать этот вектор в функциях-членах классов. Сначала я попытался включить основной файл, но получил ошибку переопределения. после этого я попытался определить вектор в другом файле .h. но это тоже не сработало. , так что я должен сделать, чтобы использовать этот вектор в определении некоторых классов, тем самым, чтобы он мог сохранить изменения, внесенные в функции-члены.Как я могу использовать вектор в нескольких файлах .cpp и заголовках одновременно?
К сожалению, этот вектор глобальный!
для получения дополнительной информации этот вектор является доской игры. в этой игре есть несколько объектов: монстр, человек, сокровище и некоторые ловушки. плата определяется глобально перед основной функцией. в main.cpp есть некоторые функции, которые используют эту доску, а классы, которые я упомянул выше в 3 строках, используют эту плату в своих функциях-членах.
является решение с использованием «Экстерн»? (Я не знаю, что это такое, я только что видел его в ответах! -если это решение, я должен искать об этом.)
Взгляд вверх 'extern' ключевого слова в вашем C/C++ справочной документации Тем не менее, использовать ссылочный параметр и забудьте об идее глобального, если эта целая программа меньше, чем около 25 строк кода. – WhozCraig
Является ли это глобальной переменной (плохая идея)? Локальная переменная в main() или некоторая другая функция ? Такие вещи важны, если мы хотим вам помочь. –
Передайте его по ссылке в соответствующие функции. – Pubby