Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.67/3: Рейтинг темы: голосов - 3, средняя оценка - 4.67
8 / 7 / 3
Регистрация: 09.10.2014
Сообщений: 165
1

Передача значения в функцию

26.10.2016, 21:52. Показов 596. Ответов 10
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Столкнулся с такой вот проблемой :
есть функция (func_1) в которую передаются три параметра (два числа и массив) , она делает своё дело , и результатом возвращает массив и его размер

C++
1
return(arr,size);
Есть другая функция которая принимает два параметра массив и его размер (как не странно) соответственно я наивный написал вот так :

C++
1
func_2(func_1(num_1,num_2,size));
Но вскоре я понял (ошибки пошли=)))) что в func_2 надо передать 2 параметра , а я передаю только 1
Как мне правильно сделать что бы тот ретурн передавал массив и размер прямо в func_2 ?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
26.10.2016, 21:52
Ответы с готовыми решениями:

Передача значения в функцию
Здравствуйте. Сам только начал изучать C++. В общем,никак не могу передать значение login в...

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

Передача аргументов в функцию и возврат значения
Зачем нужны аргументы функции? Что делает return, если задать ненулевое значение? Как из main()...

Передача значения из поля структуры в функцию
Здравствуйте, у меня возникла проблема - у меня есть структура: struct game { char...

10
Модератор
Эксперт по электронике
8952 / 6718 / 921
Регистрация: 14.02.2011
Сообщений: 23,716
26.10.2016, 21:55 2
Цитата Сообщение от DEVILD_Roma Посмотреть сообщение
Как мне правильно сделать что бы тот ретурн передавал массив и размер прямо в func_2 ?
только оформить структурой
return может вернуть только одну сущность
или пересмотреть вызов функций
0
8 / 7 / 3
Регистрация: 09.10.2014
Сообщений: 165
26.10.2016, 22:03  [ТС] 3
Цитата Сообщение от ValeryS Посмотреть сообщение
или пересмотреть вызов функций
Да , я думал об этом , я могу и с func_1 вызвать func_2 и передать что надо и проблем не будет (пробовал уже)
но у меня таких "func_2" будет около 10 в зависимости от условий , а много if`ов писать не хотелось
В любом случаи , спасибо Вам за помощь.
0
Модератор
Эксперт по электронике
8952 / 6718 / 921
Регистрация: 14.02.2011
Сообщений: 23,716
26.10.2016, 22:17 4
Цитата Сообщение от DEVILD_Roma Посмотреть сообщение
но у меня таких "func_2" будет около 10 в зависимости от условий , а много if`ов писать не хотелось
виртуальные функции?
указатель на функции?
0
181 / 47 / 33
Регистрация: 27.02.2016
Сообщений: 260
26.10.2016, 22:22 5
DEVILD_Roma, я вижу решение в использовании шаблонного класса из STL: pair<arrType, sizeType>
0
Форумчанин
Эксперт CЭксперт С++
8216 / 5046 / 1437
Регистрация: 29.11.2010
Сообщений: 13,453
26.10.2016, 22:57 6
Надо узнать поподробнее о задании.
Логичнее всего обернуть массив и какую-то его характеристику в объект структуры/класса.
Но возможно, имеет смысл все функции завернуть в методы одного класса и работать с общими данными как с его свойствами.
0
8 / 7 / 3
Регистрация: 09.10.2014
Сообщений: 165
27.10.2016, 13:00  [ТС] 7
Цитата Сообщение от ValeryS Посмотреть сообщение
виртуальные функции?
указатель на функции?
Функции типа func_2 - это функции кодирования информации
функция типа func_1 - это функция перевода в исходный код (двоичный)

Я думаю просто написать отдельную функцию выбора типа кодирования , а в func_1 , просто вызвать ее , передать два значения , а она уже будет выбирать тип кодировки в зависимости от того что выберет пользователь.

Добавлено через 2 минуты
Цитата Сообщение от MrGluck Посмотреть сообщение
имеет смысл все функции завернуть в методы одного класса и работать с общими данными как с его свойствами
Думал об этом , продумал реализацию (примерно) , но пока хочу написать функциями без использования классов.
0
Модератор
Эксперт по электронике
8952 / 6718 / 921
Регистрация: 14.02.2011
Сообщений: 23,716
27.10.2016, 14:08 8
Цитата Сообщение от DEVILD_Roma Посмотреть сообщение
в зависимости от того что выберет пользователь.
вот накидал примерчик, который показывает использование массива указателей на функцию, в СИ стиле
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
#include <iostream>
using namespace std;
 
void func1(void)
{
  cout<<"func 1"<<endl;
}
 
void func2(void)
{
  cout<<"func 2"<<endl;
}
 
void func3(void)
{
  cout<<"func 3"<<endl;
}
void func4(void)
{
 cout<<"func4"<<endl;
}
 
typedef void (*pFunc)(void);
 
int main()
{
 unsigned int i=0;
 pFunc p[4];
 p[0]=func1;
 p[1]=func2;
 p[2]=func3;
 p[3]=func4;
  while(1)
  {
    cin>>i;
    i%=4;// защита от дурака
    p[i]();// вызов функции в зависимости от выбора пользователя
  }
 return 0;
}
0
8 / 7 / 3
Регистрация: 09.10.2014
Сообщений: 165
27.10.2016, 14:21  [ТС] 9
Цитата Сообщение от ValeryS Посмотреть сообщение
вот накидал примерчик
Интересный вариант , попробую.Спасибо
0
Форумчанин
Эксперт CЭксперт С++
8216 / 5046 / 1437
Регистрация: 29.11.2010
Сообщений: 13,453
27.10.2016, 17:17 10
Неужели это проще, чем
C++
1
std::function<void()> p[] = {func1, func2, func3, func4};
0
Модератор
Эксперт по электронике
8952 / 6718 / 921
Регистрация: 14.02.2011
Сообщений: 23,716
27.10.2016, 17:24 11
Цитата Сообщение от MrGluck Посмотреть сообщение
Неужели это проще, чем
не проще просто по другому
0
27.10.2016, 17:24
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
27.10.2016, 17:24
Помогаю со студенческими работами здесь

Передача значения переменной-члена из класса в функцию
Добрый день, имеется класс: class ZernPole{ public:...

Добрый вечер! Передача в функцию константного значения и обьявление им массива
Вот у меня есть функция с объявленым массивом внутри: f(const int &amp;C) { int mass; } Где тут...

Передача значения в функцию
Имеется две формы одного вида форма &lt;form name=&quot;pack&quot;&gt; &lt;table&gt; &lt;tr&gt;&lt;td&gt;1.&lt;/td&gt;&lt;td&gt;&lt;input...

Передача значения в функцию
Добрый день. Объясните пожалуйста почему в массив добавляется функция со значением alert(i), а не...


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

Или воспользуйтесь поиском по форуму:
11
Ответ Создать тему
Новые блоги и статьи
Как запретить подсветку выделенного текста с помощью CSS
InfoMaster 20.01.2025
Подсветка текста при выделении является стандартным поведением браузера, которое не всегда соответствует дизайнерским решениям или функциональным требованиям веб-приложения. Выделение текста может. . .
Как выполнить другую программу или системную команду из Python
InfoMaster 20.01.2025
Python предоставляет мощные инструменты для выполнения системных команд и управления внешними процессами, что делает его идеальным выбором для автоматизации различных задач системного. . .
Как узнать директорию bash-скрипта из самого bash-скрипта
InfoMaster 20.01.2025
При разработке bash-скриптов одной из важных задач является определение директории, в которой находится исполняемый скрипт. Это критически важно для корректной работы с файлами, загрузки конфигураций. . .
В чем разница между let и var в JavaScript
InfoMaster 20.01.2025
JavaScript прошел длинный путь эволюции с момента своего создания в 1995 году. Одним из важнейших аспектов развития языка стало совершенствование механизмов объявления и управления переменными. . . .
Эффективная работа со строками в Go
InfoMaster 20.01.2025
Язык программирования Go предлагает уникальный подход к работе со строками, который существенно отличается от многих других языков программирования. В Go строки представляют собой неизменяемые. . .
Как проверить, что отображение (map) содержит ключ в Go
InfoMaster 20.01.2025
Отображения (maps) в языке программирования Go представляют собой мощные структуры данных, которые позволяют хранить пары ключ-значение и обеспечивают быстрый доступ к данным по уникальным. . .
Как организовать домашнее хранилище фильмов с общим доступом для всей семьи
InfoMaster 20.01.2025
Преимущества домашнего медиасервера В современном мире, где цифровой контент стал неотъемлемой частью нашей жизни, организация домашнего медиасервера становится все более актуальной задачей. . . .
Перспективы развития жестких дисков: есть ли у них будущее?
InfoMaster 20.01.2025
История и эволюция жестких дисков История развития жестких дисков начинается в 1956 году, когда компания IBM представила первое устройство для хранения данных на магнитных пластинах - IBM 350. . .
Распознавание изображений (компьютерное зрение) на C++
InfoMaster 20.01.2025
Введение в компьютерное зрение и основы работы с изображениями Компьютерное зрение представляет собой одну из наиболее динамично развивающихся областей информационных технологий, позволяющую. . .
Какой язык программировани­я лучший для разработки нейронных сетей
InfoMaster 20.01.2025
В современном мире технологий искусственные нейронные сети становятся неотъемлемой частью множества инновационных решений, от распознавания речи до автоматического управления транспортными. . .
Как подключить JavaScript файл в другом JavaScript файле
InfoMaster 20.01.2025
В современной веб-разработке организация кодовой базы играет ключевую роль в создании масштабируемых и поддерживаемых приложений. Модульность и правильное структурирование кода стали неотъемлемыми. . .
Как откатить изменения в исходниках, не внесенные в Git
InfoMaster 20.01.2025
При работе с системой контроля версий Git разработчики часто сталкиваются с необходимостью отменить внесенные изменения в исходном коде. Особенно актуальной становится ситуация, когда изменения еще. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru