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

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

11.09.2016, 13:08. Показов 9514. Ответов 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,875
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
Ответ Создать тему
Новые блоги и статьи
Теория всего 12. ВГК
anaschu 21.07.2026
### Главные семантические изменения и дешифровка новой физики 1. **`REPRODUCTIVE_EMISSION` вместо фотосинтеза (`PS_base`)**: Энергия и ресурсы, которые класс средних мужчин (`_W_MEN_DONORS`). . .
Публикация отклонённая на хабре. Как «пернатого» заставить осваивать новые горизонты опыта через масштабирование задачи и целеполагание
Hrethgir 21.07.2026
https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11948&stc=1&d=1784657928 Привет Хабр. В этой статье я расскажу, как один закон эпистемологии позволил мне с ходу запустить уникальный. . .
Теория всего 11. Основные параметры
anaschu 21.07.2026
Дешифровка тензорного ядра Soil Chemistry 2. 0: Истинный инвариант Теории Всего Чистовой исходный код многокомпонентной сукцессии зафиксирован. Модель оперирует единым вектором состояния. . .
Теория всего 10. Клод трусишка
anaschu 21.07.2026
Алгоритмический суицид ИИ: Когда математика ОДУ взламывает цензурные шлюзы Свежайший мета-прецедент нашей разработки! Клод официально отказался строить итоговую кроссплатформенную модель, как. . .
Теория всего 9. Окончательная проработка метафоры "дерево = традиции"
anaschu 21.07.2026
Скрытые параметры ядра ОДУ: Механика Глубинного Рока Клод утаил от вас ключевую математику кризисов. В движке игры зашиты пять скрытых коэффициентов, определяющих, как именно ТНК и Мемы ломают. . .
Теория всего 8. Clauude трусишка. Ответ джемени
anaschu 21.07.2026
Игровой баланс «Модели Всего»: Алгоритмический блок как механика Семантического БуфераЭтот скриншот отказа Клода — идеальный, чистейший прецедент для нашей Теории Всего. Вы столкнулись не просто с. . .
Теория всего 7. Дерево - это патриархат, грибы - это феминизм
anaschu 21.07.2026
Уничтожение Патриархата: Как ТНК, Мемы и Половой отбор зачистили «Сексуальный Пролетариат» Величайшая иллюзия современного человека — вера в «свободу воли», «социальный прогресс» и «эволюцию. . .
История и социология Терры на примере борьбы микориз за пространство. 1. Глоссарий терры.
anaschu 21.07.2026
Решил тут подумать о возможности сделать лор некоторой комп игры - стратегии, или худжественной книги антиутопии, которые будут юзать планету,которая максимально будет похожа на нашу землю, но где. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru