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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 04.09.2010, 23:23   #21
Impuls1989
Форумчанин
 
Аватар для Impuls1989
 
Регистрация: 16.08.2008
Сообщений: 276
По умолчанию

Цитата:
Сообщение от jec Посмотреть сообщение
нашел фишку одну

Код:
void Application::Run()
{
    Loops = true;
    while(Loops == true)
    {
        Loop();
        Loops = false;
    }
}
то тогда все пишется
НО! один раз =(
Ну логично. Вы ведь сразу выходите из while. Можно еще сделать отдельный поток, а в нем прописать ваш бесконечный while
Искусственный интеллект - фигня по сравнению с естественной глупостью
Impuls1989 вне форума Ответить с цитированием
Старый 04.09.2010, 23:26   #22
jec
Пользователь
 
Регистрация: 04.09.2010
Сообщений: 42
По умолчанию

дану какой то стремный код
jec вне форума Ответить с цитированием
Старый 04.09.2010, 23:28   #23
jec
Пользователь
 
Регистрация: 04.09.2010
Сообщений: 42
По умолчанию

Цитата:
Сообщение от Impuls1989 Посмотреть сообщение
Ну логично. Вы ведь сразу выходите из while. Можно еще сделать отдельный поток, а в нем прописать ваш бесконечный while
почему?? получается что код выполняется только когда цикл завершается
а мне надо что бы он работал тогда когда цикл идет
jec вне форума Ответить с цитированием
Старый 04.09.2010, 23:29   #24
blob
Пользователь
 
Регистрация: 24.08.2010
Сообщений: 34
По умолчанию

Автор, лучше толком поясните задачу, так как фразы типа "стрёмный код" к результату Вас явно не приблизят
blob вне форума Ответить с цитированием
Старый 04.09.2010, 23:31   #25
Impuls1989
Форумчанин
 
Аватар для Impuls1989
 
Регистрация: 16.08.2008
Сообщений: 276
По умолчанию

Цитата:
Сообщение от jec Посмотреть сообщение
дану какой то стремный код
Поконкретней?
Могу еще одну таблетку предложить:
Кидаете в свой класс ссылку на описанную Вами функцию Loop, а в классе вызываете функцию по указателю.
будет приметно так:
Код:
MyClass a(Loop);
a.Start
Искусственный интеллект - фигня по сравнению с естественной глупостью
Impuls1989 вне форума Ответить с цитированием
Старый 04.09.2010, 23:34   #26
Impuls1989
Форумчанин
 
Аватар для Impuls1989
 
Регистрация: 16.08.2008
Сообщений: 276
По умолчанию

Цитата:
Сообщение от jec Посмотреть сообщение
получается что код выполняется только когда цикл завершается
а мне надо что бы он работал тогда когда цикл идет
Код работает. Вопрос в другом: видите ли Вы результат выполнения этого кода? Вполне вероятно что выводимая информация не отображается (в целях оптимизации видео, глюка драйвера, и т.п. хрени)
Искусственный интеллект - фигня по сравнению с естественной глупостью
Impuls1989 вне форума Ответить с цитированием
Старый 04.09.2010, 23:38   #27
jec
Пользователь
 
Регистрация: 04.09.2010
Сообщений: 42
По умолчанию

..напишу цель проекта
может тогда станет понятней зачем мне именно так делать а не иначе

пишу GameEngine
да да это зародышь моего движка, начал делать каркас но вот сталкнулся с такой проблемой

не знаю как толком описать проблему но напишу как надо будет это все дело использовать

создаем файл main.cpp (любой) подключаем хидер движка
и начинаем писать

Код:
pplication* pApp = new Application();//создаем экземпляр приложения (потом побправлю, будет экземпляр движка, но жо этого далеко

    if(pApp->Init() == false)//инициализируем
    {
        return -1;
    }
    pApp->Run();//включаем

    pApp->Render();//пишем сюда все что нужно отрисовать
    {
        printf("hello\n");//на данный момент это вывести привет
    }

    pApp->Quit();//завершить работу

    if(pApp)//если приложение все еще работает то
    {
        delete pApp; //удалить
        pApp = NULL;//обнулить
    }
    return 0;//завершим выполнение нормально
ну вот теперь более понятно зачем мне так надо делать??
jec вне форума Ответить с цитированием
Старый 04.09.2010, 23:46   #28
jec
Пользователь
 
Регистрация: 04.09.2010
Сообщений: 42
По умолчанию

опа а все таки выполняется =))
сделал так:

Код:
    int p = 0;
    for(int j = 0; j < 100; j++)
    {
        Loop();
        p += 1;
    }
    printf(" %i", p);
выводит значение 100
тоесть выполняется 100 раз =))
все работает оказывается
jec вне форума Ответить с цитированием
Старый 04.09.2010, 23:55   #29
Carbon
JAVA BEAN
Участник клуба
 
Аватар для Carbon
 
Регистрация: 22.04.2007
Сообщений: 1,329
По умолчанию

ТС хочет сделать аля руби:
Код:
def loop
  while true do yield end
end

loop {
  print "hello\n"
}
Плюсы такое не позволяют. Максимум, что можно, так это передать функтор в тот метод, который должен зацикливаться.

Можно заюзать ещё лямбду из нового стандарта.

Последний раз редактировалось Carbon; 04.09.2010 в 23:59.
Carbon вне форума Ответить с цитированием
Старый 04.09.2010, 23:55   #30
Impuls1989
Форумчанин
 
Аватар для Impuls1989
 
Регистрация: 16.08.2008
Сообщений: 276
По умолчанию

Если хотите делать движок. Надо разобраться с многопоточностью. Читайте в сторону fork()
Искусственный интеллект - фигня по сравнению с естественной глупостью
Impuls1989 вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Работа с классами Superlotles Общие вопросы C/C++ 6 16.06.2010 17:15
С++: работа с классами MR_Andrew Общие вопросы C/C++ 23 01.04.2010 23:46
Работа с классами (Delphi_7) Innga Помощь студентам 4 14.01.2010 16:20
Работа с классами и объектами Shavminator Общие вопросы Delphi 7 18.12.2009 04:11
работа с классами, но трабл в функциях-методах aka_faith Общие вопросы C/C++ 9 14.06.2009 22:26