Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > C/C++: Общие вопросы > Функция


Автор: m1kle 25.8.2008, 03:24
Как сделать в отдельной void функции, чтобы внутри неё переменная a принимала значение функции void b();

Насколько я понял функция void b(); должна содержать "return x;"

Автор: UserNet 25.8.2008, 06:04
В С++ функция типа void, не может содержать код return x,это вызовит ошибку, тебе надо поменять тип тип функции.

Автор: t_gran 25.8.2008, 06:39
Не, если просто написать return не возвращая никаких значений, то всё будет в порядке. (Т.е. не return x, return)

Автор: Annihilator 25.8.2008, 09:42
Цитата(m1kle @  25.8.2008,  07:24 Найти цитируемый пост)
принимала значение функции void b()

а какое значение может быть у функции, если она void

Автор: cutwater 25.8.2008, 10:10
Цитата(Annihilator @  25.8.2008,  09:42 Найти цитируемый пост)
а какое значение может быть у функции, если она void 

В том то и дело что никакого. Ф-ция void ничего не возвращает, то есть у нее НЕТ возвращаемого значения.
Укажи тип возврата другой, например, если у тебя x - int, тогда можешь смело писать return x
Код

int b();

Автор: UnrealMan 25.8.2008, 13:01
Цитата(Annihilator @  25.8.2008,  10:42 Найти цитируемый пост)
а какое значение может быть у функции, если она void 

Значение типа void.

Цитата(cutwater @  25.8.2008,  11:10 Найти цитируемый пост)
Ф-ция void ничего не возвращает, то есть у нее НЕТ возвращаемого значения.

Функция, тип возврата которой указан как void, возвращает rvalue типа void.

Код

Код

void f(unsigned n)
{
    return n ? f(n-1) : void();
}

вполне законен.

Автор: W4FhLF 25.8.2008, 13:18
Цитата(UnrealMan @  25.8.2008,  13:01 Найти цитируемый пост)
Врёшь.


Да не врёт, просто на разных уровнях абстракции мыслите. 

Автор: UnrealMan 25.8.2008, 13:32
Цитата(W4FhLF @  25.8.2008,  14:18 Найти цитируемый пост)
а не врёт, просто на разных уровнях абстракции мыслите. 

Ну, в общем, под value можно понимать разные вещи, согласен.

Автор: cutwater 25.8.2008, 14:55
Просто зачем грузить новичка, на начальном уровне чем проще объяснить, тем быстрей поймет человек. А потом уже в последствии до копается до истины.

Автор: m1kle 25.8.2008, 16:38
Понял. Void ничего не возвращает.

А int как реализовать?
Код


int Gen()
{
    return 1;
}

void Action() // Äåéñòâèå
{ 
            int a=int(Gen);
}


Это бред конечно, но ничего другого в голову не приходит.

Автор: andrew_121 25.8.2008, 16:46
m1kle, Вот:
Код

int Gen()
{
    return 1;
}

void Action() // Äåéñòâèå
{ 
            int a=Gen();
}


Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)