C++ Вопрос Чем действия void отличается от int?

Участник
Статус
Оффлайн
Регистрация
26 Июн 2020
Сообщения
1,114
Реакции[?]
210
Поинты[?]
8K
мне это ничего не дало, что меняется в этих классах. и что происходит во время возвращения данных, зачем их возвращать?
Скажем ты сделал калькулятор степеней, тебе нужно будет возвращать полученное значение для вывода
 
Пользователь
Статус
Оффлайн
Регистрация
21 Окт 2017
Сообщения
738
Реакции[?]
147
Поинты[?]
0
уже вроде что то понял, но не до конца, то есть int дает понять сделал ли ты ошибку или нет? или что. я рил вообще не вдупляю, вот прост не додходит до меня и все
с помощью int ты можешь понять прошел ли этот кусок кода или нет, например, делаешь 2 проверки, какая вернула - та прошла, соответственно другая - нет. Надеюсь мысль донес
 
fff
Начинающий
Статус
Оффлайн
Регистрация
24 Ноя 2020
Сообщения
115
Реакции[?]
21
Поинты[?]
0
с помощью int ты можешь понять прошел ли этот кусок кода или нет, например, делаешь 2 проверки, какая вернула - та прошла, соответственно другая - нет. Надеюсь мысль донес
при написании какой нибудь проги или чита, влияет ли использование void или int на сам код?
 
Что не крутится, то легит
Начинающий
Статус
Оффлайн
Регистрация
20 Сен 2019
Сообщения
157
Реакции[?]
22
Поинты[?]
0
Web developer / designer
Пользователь
Статус
Оффлайн
Регистрация
15 Ноя 2020
Сообщения
411
Реакции[?]
124
Поинты[?]
2K
Объясню на примере c#

C#:
       static void Hello(string name)
        {
            Console.WriteLine($"Привет, {name}!");
        }
        // VOID ничего не возвращает в ответ, он лишь делает какое то действие, например, как тут он выводит: "Привет, {имя}!"
        static int Sum(int a, int b)
        {
            return a + b;
        }
        // int / string / bool / vector и тд в свою очередь могут вернуть какое - то значение. Например тут он посчитает сумму двух значений, которые ты укажешь в аргументах и вернёт тебе лишь ответ.
Если что то опять не понятно, напиши, только опиши подробнее, что именно не ясно
 
Пользователь
Статус
Оффлайн
Регистрация
21 Окт 2017
Сообщения
738
Реакции[?]
147
Поинты[?]
0
fff
Начинающий
Статус
Оффлайн
Регистрация
24 Ноя 2020
Сообщения
115
Реакции[?]
21
Поинты[?]
0
Объясню на примере c#

C#:
       static void Hello(string name)
        {
            Console.WriteLine($"Привет, {name}!");
        }
        // VOID ничего не возвращает в ответ, он лишь делает какое то действие, например, как тут он выводит: "Привет, {имя}!"
        static int Sum(int a, int b)
        {
            return a + b;
        }
        // int / string / bool / vector и тд в свою очередь могут вернуть какое - то значение. Например тут он посчитает сумму двух значений, которые ты укажешь в аргументах и вернёт тебе лишь ответ.
Если что то опять не понятно, напиши, только опиши подробнее, что именно не ясно
аааа то есть void напишет a + b, а int просто выведет ab? или я опять что то не так понял
 
Что не крутится, то легит
Начинающий
Статус
Оффлайн
Регистрация
20 Сен 2019
Сообщения
157
Реакции[?]
22
Поинты[?]
0
Web developer / designer
Пользователь
Статус
Оффлайн
Регистрация
15 Ноя 2020
Сообщения
411
Реакции[?]
124
Поинты[?]
2K
аааа то есть void напишет a + b, а int просто выведет ab? или я опять что то не так понял
может лучше в дс сходим, там понимать то и нечего, просто не хочу засорять тему.
не хочешь дс, дай свой тг/вк
 
fff
Начинающий
Статус
Оффлайн
Регистрация
24 Ноя 2020
Сообщения
115
Реакции[?]
21
Поинты[?]
0
может лучше в дс сходим, там понимать то и нечего, просто не хочу засорять тему.
не хочешь дс, дай свой тг/вк
retardasf#0442
при void нет нужды в return;, если есть int, float, string, то return обязателен
пооооооонял
 
Олдфаг
Статус
Оффлайн
Регистрация
18 Фев 2019
Сообщения
2,826
Реакции[?]
1,853
Поинты[?]
24K
Я увидел очень много ошибок в ответах от пользователей, поэтому считаю лучшим решением ответить самому.

Схема описания функции в C/C++:

1622401402609.png

Как это выглядит в коде:
C++:
#include <iostream>

//Новые функции и процедуры должны создаваться выше функции main()
//В круглых скобках указываются аргументы, которые будет принимать функция
int sum(int a, int b)
{
   //Используем переданные аргументы, чтобы провести вычисления
    int result = a + b;
    //Оператор возврата говорит программе, что функция завершила работу
    return result;

   //Всё, что записано после return, не будет выполнено
}

int main()
{
    //Вызываем функцию с аргументами
    int result = sum(5, 6);
    cout << result; //Выводим ответ в консоль
}
Функции могут принимать или не принимать аргументы. Но если ты указал, что аргументы всё же нужны, то попытка вызвать функцию без них приведёт к ошибке.
Если указывать какой-либо тип возвращаемых данных, то обязательно должен присутствовать оператор return. Если возвращать значение не нужно, создавай процедуру — используй тип void.

C++:
#include <iostream>

//Процедура void, которая выполняет какие-либо действия, но не возвращает значения
void printHello(std::string name)
{
    std::cout << "Hello, " << name << "!\n";
    //return нет
}

int main()
{
    printHello("Irval"); //Вызов printHello
}
В результате будет напечатана строка "Hello, Irval!".

Что мы должны были понять:
Функция возвращает значение, а процедура просто выполняет команды. Само понятие функции пришло из математики. Она используется для вычисления значения на основе входных данных.
Процедура - это набор команд, которые могут выполняться по порядку.
В большинстве языков программирования даже функции могут иметь набор команд. Следовательно, разница заключается только в возврате значения.
 
Участник
Статус
Оффлайн
Регистрация
26 Июн 2020
Сообщения
1,114
Реакции[?]
210
Поинты[?]
8K
Я увидел очень много ошибок в ответах от пользователей, поэтому считаю лучшим решением ответить самому.

Схема описания функции в C/C++:

Посмотреть вложение 151704

Как это выглядит в коде:
C++:
#include <iostream>

//Новые функции и процедуры должны создаваться выше функции main()
//В круглых скобках указываются аргументы, которые будет принимать функция
int sum(int a, int b)
{
   //Используем переданные аргументы, чтобы провести вычисления
    int result = a + b;
    //Оператор возврата говорит программе, что функция завершила работу
    return result;

   //Всё, что записано после return, не будет выполнено
}

int main()
{
    //Вызываем функцию с аргументами
    int result = sum(5, 6);
    cout << result; //Выводим ответ в консоль
}
Функции могут принимать или не принимать аргументы. Но если ты указал, что аргументы всё же нужны, то попытка вызвать функцию без них приведёт к ошибке.
Если указывать какой-либо тип возвращаемых данных, то обязательно должен присутствовать оператор return. Если возвращать значение не нужно, создавай процедуру — используй тип void.

C++:
#include <iostream>

//Процедура void, которая выполняет какие-либо действия, но не возвращает значения
void printHello(std::string name)
{
    std::cout << "Hello, " << name << "!\n";
    //return нет
}

int main()
{
    printHello("Irval"); //Вызов printHello
}
В результате будет напечатана строка "Hello, Irval!".

Что мы должны были понять:
Функция возвращает значение, а процедура просто выполняет команды. Само понятие функции пришло из математики. Она используется для вычисления значения на основе входных данных.
Процедура - это набор команд, которые могут выполняться по порядку.
В большинстве языков программирования даже функции могут иметь набор команд. Следовательно, разница заключается только в возврате значения.
Боюсь, ты усложнил ему задачу))
ему нужен более короткий и в тоже время внятный ответ)) :roflanBuldiga:
 
Web developer / designer
Пользователь
Статус
Оффлайн
Регистрация
15 Ноя 2020
Сообщения
411
Реакции[?]
124
Поинты[?]
2K
Я увидел очень много ошибок в ответах от пользователей, поэтому считаю лучшим решением ответить самому.

Схема описания функции в C/C++:

Посмотреть вложение 151704

Как это выглядит в коде:
C++:
#include <iostream>

//Новые функции и процедуры должны создаваться выше функции main()
//В круглых скобках указываются аргументы, которые будет принимать функция
int sum(int a, int b)
{
   //Используем переданные аргументы, чтобы провести вычисления
    int result = a + b;
    //Оператор возврата говорит программе, что функция завершила работу
    return result;

   //Всё, что записано после return, не будет выполнено
}

int main()
{
    //Вызываем функцию с аргументами
    int result = sum(5, 6);
    cout << result; //Выводим ответ в консоль
}
Функции могут принимать или не принимать аргументы. Но если ты указал, что аргументы всё же нужны, то попытка вызвать функцию без них приведёт к ошибке.
Если указывать какой-либо тип возвращаемых данных, то обязательно должен присутствовать оператор return. Если возвращать значение не нужно, создавай процедуру — используй тип void.

C++:
#include <iostream>

//Процедура void, которая выполняет какие-либо действия, но не возвращает значения
void printHello(std::string name)
{
    std::cout << "Hello, " << name << "!\n";
    //return нет
}

int main()
{
    printHello("Irval"); //Вызов printHello
}
В результате будет напечатана строка "Hello, Irval!".

Что мы должны были понять:
Функция возвращает значение, а процедура просто выполняет команды. Само понятие функции пришло из математики. Она используется для вычисления значения на основе входных данных.
Процедура - это набор команд, которые могут выполняться по порядку.
В большинстве языков программирования даже функции могут иметь набор команд. Следовательно, разница заключается только в возврате значения.
Твой ответ очень хороший, не спорю, но для него он будет непонятен. Я сходил с ним в дс, попробовал объяснить на примерах из жизни, вроде он понял.
 
Олдфаг
Статус
Оффлайн
Регистрация
18 Фев 2019
Сообщения
2,826
Реакции[?]
1,853
Поинты[?]
24K
Боюсь, ты усложнил ему задачу))
ему нужен более короткий и в тоже время внятный ответ)) :roflanBuldiga:
Мой ответ достаточно емкий и понятный новичку. Полагаю, что если ТС хоть немного углубиться в материал - таких вопросов возникать не будет
 
fff
Начинающий
Статус
Оффлайн
Регистрация
24 Ноя 2020
Сообщения
115
Реакции[?]
21
Поинты[?]
0
Мой ответ достаточно емкий и понятный новичку. Полагаю, что если ТС хоть немного углубиться в материал - таких вопросов возникать не будет
спасибо большое, все ваши ответы мне очень сильно помогли.
 
Keine panik!
Эксперт
Статус
Оффлайн
Регистрация
29 Апр 2020
Сообщения
812
Реакции[?]
417
Поинты[?]
49K
искал на разных форумах, но честно говоря, понял только примерно, можно простым языком?
Оба стандартных типа данных в C/C++.
void описывает пустой тип, поэтому когда функция возвращает void означает что она ничего не возвращает.
int это целочисленный тип со знаком размером 4 байта, описывает числа от -2147483648 до +2147483647, когда функция или переменная должна работать с целым числом используется чаще всего int.
 
Похожие темы
Сверху Снизу