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

Функция в функции :-) - C++

Восстановить пароль Регистрация
 
FarStar
Заблокирован
21.06.2013, 14:34     Функция в функции :-) #1
Привет! Задался дурацким вопросом
Можно ли создать функцию внутри функции, чтоб её вызывать там всё время? Например:
C++
1
2
3
4
5
6
void Main()
{
    void Child(){std::cout << "DIE YOU SON OF A ...." << std::endl;}
    ....
    //а где то в коде просто её вызывать типо Child(); Child();  :-)
}
Не спрашивайте зачем мне этот бред, просто интересно
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
DlTA
1 / 1 / 0
Регистрация: 21.06.2013
Сообщений: 26
21.06.2013, 14:36     Функция в функции :-) #2
а накодить и попробовать?
-=ЮрА=-
Заблокирован
Автор FAQ
21.06.2013, 14:42     Функция в функции :-) #3
@FarStar, корректно будет передавать указатель на функцию и вызывать её в теле.

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
#include <iostream>
using namespace std;
 
void fun1(const char * msg, void (*f)(const char * str));
void fun2(const char * msg);
 
int main()
{
    fun1("text for fun2", fun2);
    return 0;
}
 
void fun1(const char * msg, void (*f)(const char * str))
{
    f(msg);
}
 
void fun2(const char * msg)
{
    cout<<msg<<endl;
}
Миниатюры
Функция в функции :-)  
m1Rr0r
 Аватар для m1Rr0r
247 / 230 / 15
Регистрация: 05.02.2010
Сообщений: 3,213
Завершенные тесты: 2
21.06.2013, 14:46     Функция в функции :-) #4
таки нельзя )

Добавлено через 2 минуты

Не по теме:

declare foo as array of array 8 of pointer to pointer to function returning pointer to array of pointer to char

FarStar
Заблокирован
21.06.2013, 14:47  [ТС]     Функция в функции :-) #5
нее фишка как раз в том, чтоб объявлять функцию именно внутри функции, а не снаружи, чтоб никто больше о ней не знал, т.к. она будет разная для всех функций )))
igorrr37
 Аватар для igorrr37
1593 / 1221 / 118
Регистрация: 21.12.2010
Сообщений: 1,868
Записей в блоге: 7
21.06.2013, 14:50     Функция в функции :-) #6
можно через функтор
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
#include <iostream>
 
void F()
{
    struct Str
    {
        void operator()(char const* const pstr) const
        {
            std::cout << pstr << "\n\n";
        }
    };
 
    Str str;
    str("fg fg");// вызов
    str("vb vb");// вызов
}
 
int main()
{
    F();
    return 0;
}
Tulosba
:)
Эксперт C++
4378 / 3221 / 297
Регистрация: 19.02.2013
Сообщений: 9,044
21.06.2013, 15:29     Функция в функции :-) #7
Цитата Сообщение от igorrr37 Посмотреть сообщение
можно через функтор
не обязательно функтор, любой вложенный класс подойдет.
alsav22
5282 / 4801 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
21.06.2013, 15:30     Функция в функции :-) #8
Цитата Сообщение от FarStar Посмотреть сообщение
нее фишка как раз в том, чтоб объявлять функцию именно внутри функции
Объявлять можно, определять нет.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
21.06.2013, 15:57     Функция в функции :-)
Еще ссылки по теме:

Функция strncpy_s - объяснить аргументы функции C++
C++ Рекурсивная функция для вычисления арифметической функции
C++ Функция в качестве аргумента другой функции по умолчанию

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
rangerx
1908 / 1517 / 139
Регистрация: 31.05.2009
Сообщений: 2,876
21.06.2013, 15:57     Функция в функции :-) #9
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
#include <iostream>
 
void func()
{
    auto nested_func = []()
    {
        std::cout << "nested_func\n";
    };
 
    nested_func();
}
 
int main()
{
    func();
}
Yandex
Объявления
21.06.2013, 15:57     Функция в функции :-)
Ответ Создать тему
Опции темы

Текущее время: 00:40. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru