|
383 / 30 / 3
Регистрация: 17.08.2013
Сообщений: 560
|
|||||||||||
Как передать двумерный массив в другой класс08.02.2014, 00:59. Показов 6509. Ответов 23
Метки нет (Все метки)
Есть двумерный массив:
И правильно-ли это - передавать массив? Вопрос вдогонку, как мне сделать, чтоб при использовании перечислений не нужно было явно тип указывать, как у меня "int"?
0
|
|||||||||||
| 08.02.2014, 00:59 | |
|
Ответы с готовыми решениями:
23
Как передать массив в другой класс Как передать в функцию двумерный массив указателей на класс?
|
|
|
|
| 08.02.2014, 01:20 | |
|
А почему неправильно, если Вы хотите инкапсулировать класс и другую часть программы. Часто так делаю, правда у меня листы, с байтами.
Или же работайте через параметр типа ref - out.
0
|
|
|
Master of Orion
|
|
| 08.02.2014, 09:29 | |
|
dimakozyr, перечисления не для этого созданы, е-мое.
const int Width = 10 чем не устраивает? Массив передать: а что в этом криминального, чем он лучше/хуже любого другого класса?
0
|
|
|
383 / 30 / 3
Регистрация: 17.08.2013
Сообщений: 560
|
|||
| 09.02.2014, 00:29 [ТС] | |||
|
0
|
|||
|
|
|||||||
| 09.02.2014, 00:54 | |||||||
Сообщение было отмечено dimakozyr как решение
РешениеДобавлено через 6 минут Если в самом простом варианте, то как-то так...
1
|
|||||||
|
Master of Orion
|
|
| 09.02.2014, 03:24 | |
|
insite2012, можно спокойно убрать ref, код останется рабочим.
dimakozyr, enum нужно, для того, чтобы определять перечисления, я не хранить константы. Это не С++, е-мое. Там все используется для всего, была бы возможность. Хотя хорошие плюсисты тоже понимают, что для всего есть свои стредства, и использовать энумы вместо констант - это просто мерзко и ужасно. Даже хуже, чем дефайны.
1
|
|
|
|
||
| 09.02.2014, 10:28 | ||
|
0
|
||
|
|
|||||||||||||||||||||||
| 09.02.2014, 10:31 | |||||||||||||||||||||||
1
|
|||||||||||||||||||||||
|
|
||||||
| 09.02.2014, 10:50 | ||||||
1
|
||||||
|
|
|||||||||||
| 09.02.2014, 11:19 | |||||||||||
|
Ты показал в точности то, что я и рассказал выше. Создать массив и заполнить его - разные вещи. В общем, твой код показывает тоже самое, что выше мой.
Добавлено через 9 минут
А вот тебе заполение массива в методах с out и без
1
|
|||||||||||
|
|
||
| 09.02.2014, 11:26 | ||
|
Я такой прием часто использую, когда в классе есть метод, возвращающий строку - результат операции, успешно или нет. Но кроме этого этот же метод должен еще и вернуть мне массив байт, вот я и использую для возврата нужных мне данных ссылочный параметр...
0
|
||
|
|
||||||
| 09.02.2014, 11:44 | ||||||
|
Не по теме: Понятно, что и bool нормально. Но дело в том, что строка возврата может быть разная. Добавлено через 3 минуты Не по теме: Вот мой пример именно такого метода, с использованием строки возврата... Здесь параметр не ссылочный, а обычный.
0
|
||||||
|
|
|
| 09.02.2014, 13:09 | |
|
Вот это методище
![]() Его как минимум можно разбить на отдельные действия (методы) с устройством. Все ошибки должны генерировать исключения, а метод возвращать true либо false, это на первый взгляд, в код сильно не вникал и не пытался его разбить на отдельные методы.
0
|
|
|
|
||||||
| 09.02.2014, 13:35 | ||||||
|
Это только его часть.
![]() Там внутри метода еще пара стоит, чтение и проверка после записи. А разбивать не стоит, он на первый взгляд большой, потому что много комментариев, если все их убрать, будет короче. Да и действие тут всего одно, запись данных в контроллер электронного модуля через последовательный порт. Вы считаете, что такой способ возврата значения метода некорректен? Мне показалось это оптимальным вариантом, чтобы в основной программе не вызывать много методов с проверкой возврата каждого, а вызвать один и по строке возврата знать, как метод отработал... Вот этот класс целиком. Только не удивляйтесь. ![]() Не по теме:
0
|
||||||
|
|
||
| 09.02.2014, 13:54 | ||
![]() Ну а все-таки, такой возврат результата функции - корректен или нет? Я сначала хотел возвращать int, по ситуации (0, 1, ..., читал про С++, и что-то в голове отложилось про проверку кода возврата функции ), но потом подумал, мне так или иначе проверять код возврата, так пусть сразу строка и возвращается...
0
|
||
|
Master of Orion
|
|
| 09.02.2014, 14:49 | |
|
insite2012, почитайте про флаги возврата вс исключения...
https://www.cyberforum.ru/post... l?langid=3
0
|
|
|
|
|
| 09.02.2014, 15:15 | |
|
Так в том и дело, что в данной ситуации исключение, как правило, будет всегда одно - по таймауту чтения из порта... Других там в принципе не будет. И как локализовать, где именно прошло исключение? А таким образом я точно знаю, что пошло не так в программе... Хотя, естественно, мой метод не идеален вообще, но мне он в данной ситуации подошел больше всего...
0
|
|
|
Master of Orion
|
|
| 09.02.2014, 15:24 | |
|
insite2012, когда бросается исключение, во-первых можно бросать разного типа исключения, во-вторых он пишет, на какой строке он выпал, в-третьих можно кастомное сообщение писать. Нет таких кодов ошибки, которые нельзя было бы переделать в исключения без ухудшения кода...
0
|
|
| 09.02.2014, 15:24 | |
|
Помогаю со студенческими работами здесь
20
Передать массив значений в другой класс Не получается передать массив из одного в другой класс Как передать переменные в другой класс? Как передать ссылку по клику в другой класс? Как правильно передать ссылку в другой класс Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Переходник USB-CAN-GPIO
Eddy_Em 20.03.2026
Достаточно давно на работе возникла необходимость в переходнике CAN-USB с гальваноразвязкой, оный и был разработан. Однако, все меня терзала совесть, что аж 48-ногий МК используется так тупо: просто. . .
|
Оттенки серого
Argus19 18.03.2026
Оттенки серого
Нашёл в интернете 3 прекрасных модуля:
Модуль класса открытия диалога открытия/ сохранения файла на Win32 API;
Модуль класса быстрого перекодирования цветного изображения в оттенки. . .
|
SDL3 для Desktop (MinGW): Рисуем цветные прямоугольники с помощью рисовальщика SDL3 на Си и C++
8Observer8 17.03.2026
Содержание блога
Финальные проекты на Си и на C++:
finish-rectangles-sdl3-c. zip
finish-rectangles-sdl3-cpp. zip
|
Символические и жёсткие ссылки в Linux.
algri14 15.03.2026
Существует два типа ссылок — символические и жёсткие.
Ссылка в Linux — это запись в каталоге, которая может указывать либо на inode «файла-ИСТОЧНИКА», тогда это будет «жёсткая ссылка» (hard link),. . .
|
|
[Owen Logic] Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора
ФедосеевПавел 14.03.2026
Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора
ВВЕДЕНИЕ
Выполняя задание на управление насосной группой заполнения резервуара,. . .
|
делаю науч статью по влиянию грибов на сукцессию
anaschu 13.03.2026
прикрепляю статью
|
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 и. . .
|