Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
 
Рейтинг 4.81/47: Рейтинг темы: голосов - 47, средняя оценка - 4.81
0 / 0 / 0
Регистрация: 26.06.2016
Сообщений: 65

Что может вернуть функция?

11.09.2016, 13:08. Показов 9665. Ответов 27

Студворк — интернет-сервис помощи студентам
Я знаю что функция может вернуть значение, указатель и структуру, и составил примеры этих функций - это что-то типа конспекта, но мне интересно что ещё может вернуть функция? Может ли она вернуть ссылку, массив или ещё что-нибудь? Например, как выглядит функция возвращающая указатель void* и где применяется?
Пример функции возвращающей значение:
C++
1
2
3
4
5
    int frvalue0(int value)
    {
        int rvalue = value * value;
        return rvalue;
    }
Пример функции возвращающей указатель:
C++
1
2
3
4
5
6
7
8
9
10
11
12
    int* frpointer0(int array[], int len, int number)
    {
        int *result;
        for(int i = 0; i < len; i++)
        {
            if(array[i] = number)
            {
                result = (array + i);
            }
        }
        return result;
    }
Пример функции возвращающей структуру + сама структура:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
    struct phisbox
    {
        float mass;
        unsigned color: 24;
    };
    struct box
    {
        int width;
        int height;
        int depth;
        phisbox phis;
    };
    box frsbox0(box sboxo0)
    {
        box sboxo1;
        sboxo1.width = sboxo0.width + 5;
        sboxo1.height = sboxo0.height + 12;
        sboxo1.depth = sboxo0.depth + 14;
        sboxo1.phis.mass = sboxo0.phis.mass * 1.4F;
        sboxo1.phis.color = sboxo0.phis.color + 0X200U;
        return sboxo1;
    }
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
11.09.2016, 13:08
Ответы с готовыми решениями:

Почему функция не может вернуть массив, но может вернуть структуру содержащий массив?
Почему функция не может вернуть массив, но может вернуть структуру содержащую массив? Согласитесь что это некоторое несовершенство языка...

Что может делать функция
Подскажите пожалуйста, что может делать такая ф-ция void ReplaceAll(const String&amp; ob1, const String&amp; ob2); Добавлено через 4...

Функция должна вернуть 4 параметра
Здравствуйте. Что то я совсем подзабыл основы. Есть функция в которую я передаю 4 параметра в виде одного масива int a, а возвращает одно...

27
0 / 0 / 0
Регистрация: 26.06.2016
Сообщений: 65
29.09.2016, 12:34  [ТС]
Студворк — интернет-сервис помощи студентам
Цитата Сообщение от ValeryS Посмотреть сообщение
например функция malloc, выделяет память и возвращает указатель на неё, а потом можно, и даже нужно, привести его к какому нибудь типу
C
1
int * a=(int*)malloc(sizeof(int));
А можно эту строку переписать, используя C++`сный оператор new вместо C`шного malloc?

Добавлено через 3 минуты
Цитата Сообщение от Selot Посмотреть сообщение
Может. Только надо быть уверенным, что объект будет существовать после возврата ссылки.
Д-да, только как это сделать?
0
Любитель чаепитий
 Аватар для GbaLog-
3745 / 1801 / 566
Регистрация: 24.08.2014
Сообщений: 6,020
Записей в блоге: 1
29.09.2016, 13:06
Цитата Сообщение от kokzahvas Посмотреть сообщение
А можно эту строку переписать, используя C++`сный оператор new вместо C`шного malloc?
C++
1
int* a = new int;
0
0 / 0 / 0
Регистрация: 26.06.2016
Сообщений: 65
29.09.2016, 13:21  [ТС]
Цитата Сообщение от GbaLog- Посмотреть сообщение
C++
1
int* a = new int;
А указатель на void как сделать?
0
Любитель чаепитий
 Аватар для GbaLog-
3745 / 1801 / 566
Регистрация: 24.08.2014
Сообщений: 6,020
Записей в блоге: 1
29.09.2016, 13:24
Цитата Сообщение от kokzahvas Посмотреть сообщение
А указатель на void как сделать?
C++
1
void* a = new int;
2
Модератор
Эксперт по электронике
8982 / 6749 / 921
Регистрация: 14.02.2011
Сообщений: 23,876
29.09.2016, 13:47
Цитата Сообщение от kokzahvas Посмотреть сообщение
А можно эту строку переписать, используя C++`сный оператор new вместо C`шного malloc?
зачем???
вопрос стоял
Цитата Сообщение от kokzahvas Посмотреть сообщение
Например, как выглядит функция возвращающая указатель void* и где применяется?
вот я и привел пример
0
Комп_Оратор)
Эксперт по математике/физике
 Аватар для IGPIGP
9007 / 4708 / 630
Регистрация: 04.12.2011
Сообщений: 14,003
Записей в блоге: 16
29.09.2016, 15:45
Цитата Сообщение от GbaLog- Посмотреть сообщение
void* a = new int;
после new можно аж два слова написать. И оба приличные, кстати. А войд вот так не умеет:
C++
1
2
long long*a= new long long;
cout<<sizeof(*a)<<endl;//8
0
Любитель чаепитий
 Аватар для GbaLog-
3745 / 1801 / 566
Регистрация: 24.08.2014
Сообщений: 6,020
Записей в блоге: 1
29.09.2016, 16:23
Цитата Сообщение от IGPIGP Посмотреть сообщение
А войд вот так не умеет
Но..
Миниатюры
Что может вернуть функция?  
0
192 / 128 / 52
Регистрация: 19.01.2010
Сообщений: 518
29.09.2016, 22:11
Цитата Сообщение от kokzahvas Посмотреть сообщение
Д-да, только как это сделать?
Следить за временем жизни
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
class T
{
public:
    string str;
 
    string& get_str()
    {
        return str;   
    }
 
    T() : str("lalala") {}
};
 
string& func()
{
    T local_t;
    return local_t.get_str();   // незя. local_t умрет после ретурна
 
int main()
{
    T t1;
    string& s1 = func();   // незя
 
    T t2;
    string& s2 = t2.get_str(); // можно. объект t2 жив будет до ретурна
 
    return 0;
}
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
29.09.2016, 22:11

Функция: вернуть среднее арифметическое параметров
Написать функцию, которая будет возвращать ср.арифметическое своих параматров

Есть функция. Надо вернуть значение
void Function1( FILE *pFile, int **pb, int N, int M) { for (int i = 0; i &lt; N; i++) { int max = -1; for (int...

Функция: вернуть целое число из отрезка [1; 6]
Функция запрашивает у пользователя целое число на заданном отрезке. Например при вызове int n = readNumberIn(1, 6) функция должна вернуть...

Функция: вернуть максимальный элемент массива
с++ написать функцию которая возвращает максимальный элемент массива. Что не правильно? #include &lt;iostream&gt; #include...

Функция с указателем на void** не получается вернуть данные?
Здорова! Есть код: #include &lt;iostream&gt; using std::cout; struct IMotion { virtual int&amp; get_val()=0; };


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

Или воспользуйтесь поиском по форуму:
28
Ответ Создать тему
Новые блоги и статьи
Локальный http сервер
Argus19 17.10.2026
Локальный http сервер На работе, на двух локальных компьютерах круглосуточно работают программы опроса приборов с записью в книги Excel,которые раз в сутки записываются на сервер компании. Т. к. . . .
Копировать Windows на новый диск на UEFI
damix 17.10.2026
https:/ / uriesk. wordpress. com/ 2016/ 11/ 01/ move-window-10-to-ssd-on-a-uefi-dualboot-system-with-basic-linux-tools/ TL DR Вставляем диск, а старый подключаем через переходник, грузимся с лайва. . .
ИИ не может найти нужный язык в списке
Supersumestria 05.10.2026
Я ему даю вот такое изображение и прошу найти и подчеркнуть немецкий язык. Возвращает он вот это: https:/ / i. **********/ vqBWLe2. png Нужную строчку в 3й колонке просто выдумал. . Это. . .
Новая последняя моя музыка в SUNO
zorxor 05.10.2026
Здравствуйте, дорогие мои друзья! С большой радостью я хотел бы представить вам свою новую последнею музыку, которую сгенерировала мне по моей просьбе нейросеть SUNO. С уважением, zorxor. Это. . .
Программный домашний кинотеатр
russiannick 27.09.2026
Сподобился на программный домашний кинотеатр. В качестве ЯВУ по традиции выбрал js. В помощники взял Яндекс-Алису. Было создано три зала на разные интересы. исторические и ретро сериал Хичкок. . .
Беседа с ИИ о программистах, недопускающих к созданию и правке кода генеративные ИИ и причины этого
zorxor 21.09.2026
Раньше я радовался или получал некоторые эмоции, пусть небольшие, но всё же, от самого процесса написания кода, рекомпиляции и запуска, видя постепенное развитие программы и прочее. А теперь лень. . .
Мобильное приложение ColorStep
pavlinmavlin 17.09.2026
Реализовал приложение Красный, Зеленый, Синий в Unity3d + c#. Название изменил на ColorStep. Приложение прошло модерацию и теперь доступно для скачивания. Делал его сам, шаг за шагом — и вот,. . .
Запрет дублирования строк в табличной части
Maks 13.09.2026
Реализация из решения ниже выполнена на нетиповом справочнике "Нормы ТО" с табличной часть "Виды ТО", разработанного в КА2, со следующими реквизитами: - ВидТО (СправочникСсылка. ВидыТО); - ВидГСМ. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru