03.04.2020, 08:50 [+3 UTC]
в нашей команде: 4 325 чел. | участники онлайн: 3 (рекорд: 21)

:: РЕГИСТРАЦИЯ

задать вопрос

все разделы

правила

новости

участники

доска почёта

форум

блоги

поиск

статистика

наш журнал

наши встречи

наша галерея

отзывы о нас

поддержка

руководство

Версия системы:
7.83 (12.03.2020)
JS-v.1.35 | CSS-v.3.37

Общие новости:
28.03.2020, 20:29

Форум:
28.03.2020, 21:05

Последний вопрос:
02.04.2020, 20:19
Всего: 151914

Последний ответ:
03.04.2020, 07:09
Всего: 259920

Последняя рассылка:
02.04.2020, 21:45

Писем в очереди:
0

Мы в соцсетях:

Наша кнопка:

RFpro.ru - здесь вам помогут!

Отзывы о нас:
07.11.2018, 17:29 »
Кириллова Анна Витальевна
спасибо большое, Вы не просто решили, а объяснили и подтолкнули на правильное решение [вопрос № 193829, ответ № 276861]
23.08.2019, 21:31 »
dar777
Это самое лучшее решение! [вопрос № 196160, ответ № 278561]

РАЗДЕЛ • С / С++

Создание программ на языках C и C++.

[администратор рассылки: Андрей Кузнецов aka Dr_Andrew (Старший модератор)]

Лучшие эксперты в этом разделе

Коцюрбенко Алексей Владимирович
Статус: Старший модератор
Рейтинг: 865
CradleA
Статус: Профессор
Рейтинг: 560
solowey
Статус: Специалист
Рейтинг: 516

Перейти к консультации №:
 

Консультация онлайн # 72917
Раздел: • С / С++
Автор вопроса: Azrr
Отправлена: 27.01.2007, 21:03
Поступило ответов: 1

Уважаемые эксперты, подскажите, как получить доступ к переменной(массиву MyItem вм.приложение) в C++ Builder, из формы2, если массив был создан до создания формы1

Приложение:

Состояние: Консультация закрыта

Здравствуйте, Azrr!

Ваш массив является глобальной статической переменной, и виден из любой функции, выше которой встречается его объявление.

Замечания по Вашему коду:

1) Описывайте в .h-файлах только те функции, которые Вы хотите сделать общедоступными, и только в виде заголовка, т.е.

int calc_sum();

2) Код этих функций следует писать в .cpp-файлах, и только 1 раз в проекте. Если Вы хотите использовать в .cpp-файле (файл номер 1) функцию, описанную в другом .cpp-файле (файл 2), подключите в файле 1 .h-файл, соответствующий файлу 2, так:

#include "файл_2.h", где файл_2 - имя файла файл_2.cpp

3) Описывайте глобальные переменные в .cpp, а не в .h файлах.
4) В тех .cpp-файлах, в которых вы хотите использовать переменную, описанную в другом файле, в начале пишите:
если переменная объявлена как "items MyItem[256];",
то там, где она нужна, пишите "extern items* MyItem;"

В п. 4 есть альтернатива: если переменная объявлена в Unit1.cpp (где она у Вас по логике и должна быть), тогда строчку с extern можно поместить в Unit1.h, а в Unit2.cpp написать:
#include "Unit1.h"

Пояснения: все переменные, описанные глобально (вне функций) в некотором .cpp - файле, являются статическими и глобальными для данного .cpp-файла.
Ключевое слово extern указывает, что данная переменная для файла является внешней, т.е. описана где-то ещё, а данный файл использует её как внешнюю.

Описания переменных и тела функций не следует лепить в .h-файлы, поскольку при подключении .h-файлов с помощью #include возникнет ошибка, поскольку переменные и функции с одинаковыми именами будут описаны несколько раз в проекте.


Консультировал: Neil
Дата отправки: 27.01.2007, 21:33

Рейтинг ответа:

0

[подробно]

Сообщение
модераторам

Отправлять сообщения
модераторам могут
только участники портала.
ВОЙТИ НА ПОРТАЛ »
регистрация »

Возможность оставлять сообщения в мини-форумах консультаций доступна только после входа в систему.
Воспользуйтесь кнопкой входа вверху страницы, если Вы зарегистрированы или пройдите простую процедуру регистрации на Портале.

Яндекс Rambler's Top100

главная страница | поддержка | задать вопрос

Время генерирования страницы: 0.16996 сек.

© 2001-2020, Портал RFPRO.RU, Россия
Калашников О.А.  |  Гладенюк А.Г.
Версия системы: 7.83 от 12.03.2020
Версия JS: 1.35 | Версия CSS: 3.37