Форум программистов, компьютерный форум CyberForum.ru

return зачем он? - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Сортировка по гласным, согласным и возрастание букв в слове http://www.cyberforum.ru/cpp-beginners/thread870539.html
Помогите пожалуйста решить задачу. В заданном тексте выделить две группы слов: в первую определить слова, начинающиеся на согласную букву, во вторую - на гласную. Напечатать слова каждой из групп в порядке возрастания букв в них. Заранее спасибо.
C++ Что это за метод?И что он делает? double func (double y, int k, int n){ double y1; for (int i=0; i<=n+1;i++) y1=0; double t; t=0; y1=1; for (int i=1;i<n; i++){ y1=y*y1; cout<<y1<<endl; } http://www.cyberforum.ru/cpp-beginners/thread870528.html
C++ ifstream (считать матрицу из файла в двумерный вектор)
нужно из файла считать матрицу в двумерный вектор. файл выглядит так: 2 9 6 5 4 8 4 5 8 9 5 4 8 6 4 5 8 6 5 8 4 прошу помощи !
Циклический алгоритм (вычислить сумму положительных значений Cos(ф) на интервале [a,b] с предусловием) C++
Помогите составить блок-схему и программу для задачи с циклическим алгоритмом. ЗАДАЧА. Вычислить сумму положительных значений Cos(ф) на интервале с предусловием.
C++ STRCMP http://www.cyberforum.ru/cpp-beginners/thread870518.html
Как работает функция strcmp? strncmp? while(L<R) { m=(L+R)/2; if(!strncmp(base].a,key,3)) { found=1; break;
C++ Считывание строк с клавиатуры без учёта разделителей в переменные типа std::string Подскажите, есть какой способ считывать значения с клавиатуры без учёта разделитей в переменные типа std::string? подробнее

Показать сообщение отдельно
IGPIGP
Комп_Оратор)
 Аватар для IGPIGP
6172 / 2901 / 284
Регистрация: 04.12.2011
Сообщений: 7,723
Записей в блоге: 3
20.05.2013, 13:28     return зачем он?
Цитата Сообщение от Ryuk Посмотреть сообщение
Сколько бы книжек не перечитывал, так и не понял, зачем же все таки нужен return. Что значит: функция возвращает значение и что такое возврат значения вообще?
Я тоже не имею опыта в С++ и пишу для... Ну в общем может улыбнёт кого-то).
Функция, - поименованный блок кода, в котором кроме внутренних объявлений, раньше всех проводятся объявления через формальные параметры и их инициализация через переданные значения. Эти переменные будут по необходимости освобождены при выходе. Использование внешних и статических переменных тоже возможно. Для функций явно возвращающих значение объявляется его тип. Результат вычислений подставляется в точку вызова. Оператор return информирует компилятор о двух вещах: первое - вот и точка выхода; второе - вот и возвращаемое значение (для void - тип void). То есть точек выхода может быть несколько. При возврате из вложенных блоков нужно убедиться, что все динамические переменные и захватываемые ресурсы освобождены.
Еще важно то, что оператор return принимает выражение и тут есть 2 момента:
- первый это тот факт, что этот оператор заставляет компилятор проверять возможность неявного преобразования результата выражения к типу возвращаемого значения. То есть по возможности это хорошо бы сделать явно;
- второй это тот факт, что сложное выражение, включающее точки следования, вызова, сложные операторы, вроде:
C++
1
rerutn anotherFoo(varA)?nextOneFoo(varB):andElseOneFoo(varC);
не делают чтение/изменение и отладку, приятной. Вывод: для начала, лучше разделить вычисления на операторы, а вернуть результат.
Ещё пример того, что можно но не нужно:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
#include <iostream>
using namespace std;
void helloWorld();
void voidFoo();
int main()
{
voidFoo();
cout << endl;
    system( "pause" );
return 0;   
}
void helloWorld(){
cout<<"Hello world!";
return ;// <- это правильно. То есть можно смело удалить или закоментировать.
}
void voidFoo(){
return helloWorld();// <- вернули "значение" из void!  То есть тоже можно смело удалить оператор return.
}
Возврат из функции ссылки на переменную позволяет работать с ней как с переменной типа rvalue и это очень интересная возможность, но пока и так написал многовато.
 
Текущее время: 17:52. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru