|
0 / 0 / 1
Регистрация: 25.11.2007
Сообщений: 66
|
|
Межмодульные связи21.12.2006, 20:52. Показов 3306. Ответов 2
Метки нет (Все метки)
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt <FONT color=#000000><B style="mso-bidi-font-weight: normal <SPAN style="FONT-SIZE: 11pt; FONT-FAMILY: 'Microsoft Sans Serif' Проблема:<SPAN style="mso-spacerun: yes </SPAN>есть 2 модуля (модуля классов) ,связанные </SPAN></B><B style="mso-bidi-font-weight: normal <SPAN lang=EN-US style="FONT-SIZE: 11pt; FONT-FAMILY: 'Microsoft Sans Serif' mso-ansi-language: EN-US include</SPAN></B><B style="mso-bidi-font-weight: normal <SPAN style="FONT-SIZE: 11pt; FONT-FAMILY: 'Microsoft Sans Serif' (может быть перекрёстным </SPAN></B><B style="mso-bidi-font-weight: normal <SPAN lang=EN-US style="FONT-SIZE: 11pt; FONT-FAMILY: 'Microsoft Sans Serif' mso-ansi-language: EN-US include</SPAN></B><B style="mso-bidi-font-weight: normal <SPAN style="FONT-SIZE: 11pt; FONT-FAMILY: 'Microsoft Sans Serif' ) . Есть функция модуля 2 вызываемая из модуля 1, меняющая переменную модуля 2<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" /><o
></o ></SPAN></B></P><P class=MsoNormal style="MARGIN: 0cm 0cm 0pt <FONT color=#000000><SPAN style="FONT-SIZE: 11pt; FONT-FAMILY: 'Microsoft Sans Serif' Есть 2 модульное (консольное ) приложение из 2 модулей </SPAN><SPAN lang=EN-US style="FONT-SIZE: 11pt; FONT-FAMILY: 'Microsoft Sans Serif' mso-ansi-language: EN-US unit</SPAN><SPAN style="FONT-SIZE: 11pt; FONT-FAMILY: 'Microsoft Sans Serif' 1 и </SPAN><SPAN lang=EN-US style="FONT-SIZE: 11pt; FONT-FAMILY: 'Microsoft Sans Serif' mso-ansi-language: EN-US unit</SPAN><SPAN style="FONT-SIZE: 11pt; FONT-FAMILY: 'Microsoft Sans Serif' 2<o ></o ></SPAN></P><P class=MsoNormal style="MARGIN: 0cm 0cm 0pt <FONT color=#000000><B style="mso-bidi-font-weight: normal <SPAN lang=EN-US style="FONT-SIZE: 11pt; FONT-FAMILY: 'Microsoft Sans Serif' mso-ansi-language: EN-US Unit</SPAN></B><B style="mso-bidi-font-weight: normal <SPAN style="FONT-SIZE: 11pt; FONT-FAMILY: 'Microsoft Sans Serif' 1.</SPAN></B><B style="mso-bidi-font-weight: normal <SPAN lang=EN-US style="FONT-SIZE: 11pt; FONT-FAMILY: 'Microsoft Sans Serif' mso-ansi-language: EN-US cpp</SPAN></B><B style="mso-bidi-font-weight: normal <SPAN style="FONT-SIZE: 11pt; FONT-FAMILY: 'Microsoft Sans Serif' <o ></o ></SPAN></B></P><P class=MsoNormal style="MARGIN: 0cm 0cm 0pt <B style="mso-bidi-font-weight: normal <SPAN style="FONT-SIZE: 11pt; FONT-FAMILY: 'Microsoft Sans Serif' <FONT color=#000000>-------------------------------<o ></o ></SPAN></B></P><P class=MsoNormal style="MARGIN: 0cm 0cm 0pt <FONT color=#000000><SPAN style="FONT-SIZE: 11pt; FONT-FAMILY: 'Microsoft Sans Serif' #</SPAN><SPAN lang=EN-US style="FONT-SIZE: 11pt; FONT-FAMILY: 'Microsoft Sans Serif' mso-ansi-language: EN-US include</SPAN><SPAN style="FONT-SIZE: 11pt; FONT-FAMILY: 'Microsoft Sans Serif' "</SPAN><SPAN lang=EN-US style="FONT-SIZE: 11pt; FONT-FAMILY: 'Microsoft Sans Serif' mso-ansi-language: EN-US unit</SPAN><SPAN style="FONT-SIZE: 11pt; FONT-FAMILY: 'Microsoft Sans Serif' 2.</SPAN><SPAN lang=EN-US style="FONT-SIZE: 11pt; FONT-FAMILY: 'Microsoft Sans Serif' mso-ansi-language: EN-US h</SPAN><SPAN style="FONT-SIZE: 11pt; FONT-FAMILY: 'Microsoft Sans Serif' "<o ></o ></SPAN></P><P class=MsoNormal style="MARGIN: 0cm 0cm 0pt <SPAN lang=EN-US style="FONT-SIZE: 11pt; FONT-FAMILY: 'Microsoft Sans Serif' mso-ansi-language: EN-US <FONT color=#000000>#include <stdio.h><o ></o ></SPAN></P><P class=MsoNormal style="MARGIN: 0cm 0cm 0pt <SPAN lang=EN-US style="FONT-SIZE: 11pt; FONT-FAMILY: 'Microsoft Sans Serif' mso-ansi-language: EN-US <FONT color=#000000>#include <conio.h><o ></o ></SPAN></P><P class=MsoNormal style="MARGIN: 0cm 0cm 0pt <SPAN lang=EN-US style="FONT-SIZE: 11pt; F IN: 0cm 0cm 0pt <SPAN lang=EN-US style="FONT-SIZE: 11pt; FONT-FAMILY: 'Microsoft Sans Serif' mso-ansi-language: EN-US <FONT color=#000000>void test()<o ></o ></SPAN></P><P class=MsoNormal style="MARGIN: 0cm 0cm 0pt <SPAN lang=EN-US style="FONT-SIZE: 11pt; FONT-FAMILY: 'Microsoft Sans Serif' mso-ansi-language: EN-US <FONT color=#000000>{<o ></o ></SPAN></P><P class=MsoNormal style="MARGIN: 0cm 0cm 0pt <SPAN lang=EN-US style="FONT-SIZE: 11pt; FONT-FAMILY: 'Microsoft Sans Serif' mso-ansi-language: EN-US <FONT color=#000000><SPAN style="mso-spacerun: yes </SPAN>i=1;<o ></o ></SPAN></P><P class=MsoNormal style="MARGIN: 0cm 0cm 0pt <SPAN lang=EN-US style="FONT-SIZE: 11pt; FONT-FAMILY: 'Microsoft Sans Serif' mso-ansi-language: EN-US <FONT color=#000000>}<o ></o ></SPAN></P><DIV style="BORDER-RIGHT: medium none; PADDING-RIGHT: 0cm; BORDER-TOP: medium none; PADDING-LEFT: 0cm; PADDING-BOTTOM: 1pt; BORDER-LEFT: medium none; PADDING-TOP: 0cm; BORDER-BOTTOM: windowtext 1pt solid; mso-element: para-border-div; mso-border-bottom-alt: solid windowtext .75pt <P class=MsoNormal style="BORDER-RIGHT: medium none; PADDING-RIGHT: 0cm; BORDER-TOP: medium none; PADDING-LEFT: 0cm; PADDING-BOTTOM: 0cm; MARGIN: 0cm 0cm 0pt; BORDER-LEFT: medium none; PADDING-TOP: 0cm; BORDER-BOTTOM: medium none; mso-border-bottom-alt: solid windowtext .75pt; mso-padding-alt: 0cm 0cm 1.0pt 0cm <FONT color=#000000><SPAN style="FONT-SIZE: 11pt; FONT-FAMILY: 'Microsoft Sans Serif' Проблема в том, что хотя переменная </SPAN><SPAN lang=EN-US style="FONT-SIZE: 11pt; FONT-FAMILY: 'Microsoft Sans Serif' mso-ansi-language: EN-US I</SPAN><SPAN lang=EN-US style="FONT-SIZE: 11pt; FONT-FAMILY: 'Microsoft Sans Serif' </SPAN><SPAN style="FONT-SIZE: 11pt; FONT-FAMILY: 'Microsoft Sans Serif' « видна» в </SPAN><SPAN lang=EN-US style="FONT-SIZE: 11pt; FONT-FAMILY: 'Microsoft Sans Serif' mso-ansi-language: EN-US unit</SPAN><SPAN style="FONT-SIZE: 11pt; FONT-FAMILY: 'Microsoft Sans Serif' 1 (т.е компилятор не придирается к отсутствию её определения в </SPAN><SPAN lang=EN-US style="FONT-SIZE: 11pt; FONT-FAMILY: 'Microsoft Sans Serif' mso-ansi-language: EN-US unit</SPAN><SPAN style="FONT-SIZE: 11pt; FONT-FAMILY: 'Microsoft Sans Serif' 1) но после вызова функции </SPAN><SPAN lang=EN-US style="FONT-SIZE: 11pt; FONT-FAMILY: 'Microsoft Sans Serif' mso-ansi-language: EN-US test</SPAN><SPAN lang=EN-US style="FONT-SIZE: 11pt; FONT-FAMILY: 'Microsoft Sans Serif' </SPAN><SPAN style="FONT-SIZE: 11pt; FONT-FAMILY: 'Microsoft Sans Serif' получается </SPAN><SPAN lang=EN-US style="FONT-SIZE: 11pt; FONT-FAMILY: 'Microsoft Sans Serif' mso-ansi-language: EN-US i</SPAN><SPAN style="FONT-SIZE: 11pt; FONT-FAMILY: 'Microsoft Sans Serif' =0 вместо ожидаемого </SPAN><SPAN lang=EN-US style="FONT-SIZE: 11pt; FONT-FAMILY: 'Microsoft Sans Serif' mso-ansi-language: EN-US i</SPAN><SPAN style="FONT-SIZE: 11pt; FONT-FAMILY: 'Microsoft Sans Serif' =1<o ></o ></SPAN></P></DIV><P class=MsoNormal style="MARGIN: 0cm 0cm 0pt <SPAN style="FONT-SIZE: 11pt; FONT-FAMILY: 'Microsoft Sans Serif' <FONT color=#000000>1 из решений состоит в замене такого определения переменной в хэдер-файле<o ></o ></SPAN></P><P class=MsoNormal style="MARGIN: 0cm 0cm 0pt <FONT color=#000000><SPAN style="FONT-SIZE: 11pt; FONT-FAMILY: 'Microsoft Sans Serif' И объяалении её в 1 из модулей, а в другом её же с директивой </SPAN><SPAN lang=EN-US style="FONT-SIZE: 11pt; FONT-FAMILY: 'Microsoft Sans Serif' mso-ansi-language: EN-US external</SPAN><SPAN style="FONT-SIZE: 11pt; FONT-FAMILY: 'Microsoft Sans Serif' .<o ></o ></SPAN></P><P class=MsoNormal style="MARGIN: 0cm 0cm 0pt <FONT color=#000000><SPAN style="FONT-SIZE: 11pt; FONT-FAMILY: 'Microsoft Sans Serif' Но, согласитесь, работать с </SPAN><SPAN lang=EN-US style="FONT-SIZE: 11pt; FONT-FAMILY: 'Microsoft Sans Serif' mso-ansi-language: EN-US exte
0
|
|
| 21.12.2006, 20:52 | |
|
Ответы с готовыми решениями:
2
Разработка программы оценки качества канала связи системы связи оптической Внутреняя ошибка связи или нет связи с удалённым сервером Адаптер широкополосной мобильной связи Сеть мобильной связи |
|
86 / 62 / 69
Регистрация: 15.03.2007
Сообщений: 6,903
|
|
| 21.12.2006, 21:12 | |
|
Правильно будет указать extern int i; в unit2.h и int i; в unit2.cpp.
Если тебя смущает использование external в объектно-ориентированном языке, то следует все писать с использованием классов. Иначе странно получается. Функции вне классов (не-ООП подход) тебя устраивает, а extern нет. Не вижу в этом логики. Одно из достоинств C++ состоит как раз в возможности использования и ООП и "старого" процедурного подхода.
0
|
|
|
7 / 7 / 12
Регистрация: 13.02.2007
Сообщений: 1,255
|
|
| 22.12.2006, 21:31 | |
|
bazile все сказал, если мыслить понятиями ООП, то надо пользоваться классами, тогда любого рода глобальные переменные должны быть представлены атрибутами класса, а класс по необходимости можно оформить в виде синглетона (Singleton pattern)
Удачи, Владимир
0
|
|
| 22.12.2006, 21:31 | |
|
Помогаю со студенческими работами здесь
3
Связи в БД Связи Связи в БД БД связи Связи в БД Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
сукцессия микоризы: основная теория в виде двух уравнений.
anaschu 11.01.2026
https:/ / rutube. ru/ video/ 7a537f578d808e67a3c6fd818a44a5c4/
|
WordPad для Windows 11
Jel 10.01.2026
WordPad для Windows 11
— это приложение, которое восстанавливает классический текстовый редактор WordPad в операционной системе Windows 11. После того как Microsoft исключила WordPad из. . .
|
Classic Notepad for Windows 11
Jel 10.01.2026
Old Classic Notepad for Windows 11
Приложение для Windows 11, позволяющее пользователям вернуть классическую версию текстового редактора «Блокнот» из Windows 10. Программа предоставляет более. . .
|
Почему дизайн решает?
Neotwalker 09.01.2026
В современном мире, где конкуренция за внимание потребителя достигла пика, дизайн становится мощным инструментом для успеха бренда. Это не просто красивый внешний вид продукта или сайта — это. . .
|
|
Модель микоризы: классовый агентный подход 3
anaschu 06.01.2026
aa0a7f55b50dd51c5ec569d2d10c54f6/
O1rJuneU_ls
https:/ / vkvideo. ru/ video-115721503_456239114
|
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR
ФедосеевПавел 06.01.2026
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR
ВВЕДЕНИЕ
Введу сокращения:
аналоговый ПИД — ПИД регулятор с управляющим выходом в виде числа в диапазоне от 0% до. . .
|
Модель микоризы: классовый агентный подход 2
anaschu 06.01.2026
репозиторий https:/ / github. com/ shumilovas/ fungi
ветка по-частям.
коммит Create переделка под биомассу. txt
вход sc, но sm считается внутри мицелия. кстати, обьем тоже должен там считаться. . . .
|
Расчёт токов в цепи постоянного тока
igorrr37 05.01.2026
/ *
Дана цепь постоянного тока с сопротивлениями и источниками (напряжения, ЭДС и тока). Найти токи и напряжения во
всех элементах. Программа составляет систему уравнений по 1 и 2 законам Кирхгофа и. . .
|