Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 11.03.2010, 20:16   #1
fs444
Форумчанин
 
Регистрация: 18.08.2009
Сообщений: 289
По умолчанию Вопрос по return

Написал код:
Код:
#include<iostream>
using namespace std;

#include<windows>

int Func1(int arg1); //функция, прибавляющая к заданному числу цифру "5", без return
int Func2(int arg2); //аналогично, но без return

int main()
{
   Func1(1);
   cout << endl;
   Func1(1);
   cout << endl;

   system("pause");
   return 0;
}

int Func1(int arg1)
{
   int newArg1;
   newArg1 = arg1 + 5;
   cout << newArg1;
   return newArg1;
}

int Func2(int arg2)
{
   int newArg2;
   newArg2 = arg2 + 5;
   cout << newArg2;
}
Вопрос: что меняет в Func1 строка «return newArg1;»? Ведь вывод-то у них одинаковый получается?
fs444 вне форума Ответить с цитированием
Старый 11.03.2010, 20:31   #2
Гром
Старожил
 
Аватар для Гром
 
Регистрация: 21.03.2009
Сообщений: 2,193
По умолчанию

Меняет то, что Func1 не вызовет нареканий у компилятора.
Простые и красивые программы - коды программ + учебник C++
Создание игры - взгляд изнутри - сайт проекта
Тема на форуме, посвященная ему же
Гром вне форума Ответить с цитированием
Старый 11.03.2010, 20:31   #3
profi
Участник клуба Подтвердите свой е-майл
 
Регистрация: 19.11.2007
Сообщений: 1,022
По умолчанию

Код:
Вопрос: что меняет в Func1 строка «return newArg1;»? Ведь вывод-то у них одинаковый получается?
Возвращает значение из функции.

Тут
Код:
int Func2(int arg2)
{
   int newArg2;
   newArg2 = arg2 + 5;
   cout << newArg2;
   return newArg2;
}
забыли дописать
Код:
return newArg2;
если на то уже пошло .

А вообще можно и не возвращать, так как значения будут одинаковы .
profi вне форума Ответить с цитированием
Старый 11.03.2010, 20:37   #4
NiCola999
Не
Участник клуба
 
Регистрация: 29.10.2009
Сообщений: 1,456
По умолчанию

Код:
int Func1(int arg1)
{
   int newArg1;
   newArg1 = arg1 + 5;
   cout << newArg1;
   return newArg1;
}
здесь функция возвращает newArg1 и выводит её значение на экран

Код:
int Func2(int arg2)
{
   int newArg2;
   newArg2 = arg2 + 5;
   cout << newArg2;
}
здесь будет ошибка, т.к ф-я должна вернуть число типа int.

Последний раз редактировалось NiCola999; 11.03.2010 в 20:39.
NiCola999 вне форума Ответить с цитированием
Старый 11.03.2010, 22:09   #5
alex2693
Пользователь
 
Аватар для alex2693
 
Регистрация: 09.04.2009
Сообщений: 30
По умолчанию

Цитата:
int Func1(int arg1)
{
int newArg1;
newArg1 = arg1 + 5;
cout << newArg1;
return newArg1;
}
функция принимает число,и возвращает это же число + 5
Помогло?Скажи спасибо!☺☻☺☻
alex2693 вне форума Ответить с цитированием
Старый 12.03.2010, 14:07   #6
artush1984
Форумчанин
 
Аватар для artush1984
 
Регистрация: 27.04.2009
Сообщений: 184
По умолчанию

А в чём проблема то?
Hа C я могy пpосто делать ошибки, на C++ я могy их наследовать!
artush1984 вне форума Ответить с цитированием
Старый 12.03.2010, 14:13   #7
Ozerich
Студент 1 курса
Форумчанин Подтвердите свой е-майл
 
Аватар для Ozerich
 
Регистрация: 27.06.2008
Сообщений: 959
По умолчанию

Код:
void Func1(int arg1)
{
   int newArg1;
   newArg1 = arg1 + 5;
   cout << newArg1;
}
void Func2(int arg2)
{
   int newArg2;
   newArg2 = arg2 + 5;
   cout << newArg2;
}
Сделай так и не надо return. Если функция объявлена как int func() то она должна вернуть целое число. У тебя Func2 не возвращало ничего, это неправильно. А если написать как у меня - void func(), то функция не должна ничего возвращать
C++(STL, QT, WinInet) / DHTML(CSS) / JavaScript / PHP Developer
Ozerich вне форума Ответить с цитированием
Старый 15.03.2010, 22:58   #8
fs444
Форумчанин
 
Регистрация: 18.08.2009
Сообщений: 289
По умолчанию

Цитата:
Func1 не вызовет нареканий у компилятора
Почему?

Цитата:
Возвращает значение из функции
А если функция возвращает несколько значений?

Цитата:
если написать как у меня - void func(), то функция не должна ничего возвращать
И тогда и return не будет нужен, да?
fs444 вне форума Ответить с цитированием
Старый 15.03.2010, 23:26   #9
netrino
Участник клуба
 
Аватар для netrino
 
Регистрация: 15.07.2008
Сообщений: 1,933
По умолчанию

Цитата:
Сообщение от fs444 Посмотреть сообщение
Почему?
Потому что, если заявлено, что функция возвращает значение отличное от void, то в ней должна присутствовать инструкция return, которая и возвращает это значение

Цитата:
Сообщение от fs444 Посмотреть сообщение
А если функция возвращает несколько значений?
Функция не может возвращать много значений
Цитата:
Сообщение от fs444 Посмотреть сообщение
И тогда и return не будет нужен, да?
да
netrino вне форума Ответить с цитированием
Старый 20.03.2010, 15:07   #10
alex2693
Пользователь
 
Аватар для alex2693
 
Регистрация: 09.04.2009
Сообщений: 30
По умолчанию

функция сама возвращать несколько значений не может,если только без указателей или ссылок
Помогло?Скажи спасибо!☺☻☺☻
alex2693 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
return и echo dedyshka PHP 5 31.01.2010 16:58
Method must have a return type????? Bobrik Помощь студентам 5 18.05.2009 18:09
Рекурсия - не срабатывает return iankov PHP 2 24.02.2009 16:31
ошибка CommandText does not return a result set furstenberg БД в Delphi 2 04.02.2008 17:38