Извините, ничего не найдено.

Не расстраивайся! Лучше выпей чайку!
Регистрация
Справка
Календарь

Вернуться   forum.boolean.name > Программирование игр для компьютеров > C++

Ответ
 
Опции темы
Старый 06.07.2012, 22:23   #16
Nerd
Чудо-кот
 
Аватар для Nerd
 
Регистрация: 22.02.2011
Сообщений: 901
Написано 480 полезных сообщений
(для 1,471 пользователей)
Ответ: Вопрос-Ответ

Реально ли запилить нечто, имитирующее GOTO? (нужно для транслятора кода, т.е. убогость реализации не важна)
Через ассемблерные вставки, например (на месте goto вызывать jmp, а как узнать адрес куда нужно идти - не представляю)
Компилятор - tcc.
__________________

(Offline)
 
Ответить с цитированием
Старый 06.07.2012, 22:39   #17
impersonalis
Зануда с интернетом
 
Аватар для impersonalis
 
Регистрация: 04.09.2005
Сообщений: 14,014
Написано 6,798 полезных сообщений
(для 20,935 пользователей)
Ответ: Вопрос-Ответ

goto есть в Си. Но если для парсера, то работа с указателями решает: указатели на переменные (в т.ч. массивы) и функции - что ещё надо?
Или поподробней.
(Offline)
 
Ответить с цитированием
Сообщение было полезно следующим пользователям:
Nerd (06.07.2012)
Старый 06.07.2012, 22:46   #18
Nerd
Чудо-кот
 
Аватар для Nerd
 
Регистрация: 22.02.2011
Сообщений: 901
Написано 480 полезных сообщений
(для 1,471 пользователей)
Ответ: Вопрос-Ответ

goto есть в Си.
Упс, не знал.
__________________

(Offline)
 
Ответить с цитированием
Старый 17.10.2012, 02:04   #19
Crayzi
ПроЭктировщик
 
Регистрация: 26.06.2007
Сообщений: 194
Написано 21 полезных сообщений
(для 25 пользователей)
Плохо Ответ: Вопрос-Ответ

Есть ли справка для С++ подобная той, какая в Blitz3D? Ну всмысле с разбивкой функций по разделам, описанием ф-ций, а так-же примерами.
(Offline)
 
Ответить с цитированием
Старый 17.10.2012, 02:18   #20
jimon
 
Сообщений: n/a
Ответ: Вопрос-Ответ

Сообщение от Crayzi Посмотреть сообщение
Есть ли справка для С++ подобная той, какая в Blitz3D? Ну всмысле с разбивкой функций по разделам, описанием ф-ций, а так-же примерами.
http://www.cplusplus.com/
 
Ответить с цитированием
Старый 19.10.2012, 23:01   #21
ANIK123
Знающий
 
Аватар для ANIK123
 
Регистрация: 29.11.2010
Сообщений: 244
Написано 31 полезных сообщений
(для 49 пользователей)
Ответ: Вопрос-Ответ

привет.
есть обявление класса эфффекта
после есть обьявление класса юнита
проблема в том, что эффект должен хранить у себя сылку на экземпляр юнита и юнит должен хранить ссылку на эффект
как-то так
как они могут узнать друг-друга? и каким образом?
__________________
Intel Core i3-4005U (1.7 ГГц), 4 ГБ ОЗУ, nVidia GeForce 940M 4 ГБ, Win8.1
(Offline)
 
Ответить с цитированием
Старый 19.10.2012, 23:05   #22
den
Дэвелопер
 
Аватар для den
 
Регистрация: 13.02.2010
Сообщений: 1,645
Написано 620 полезных сообщений
(для 2,419 пользователей)
Ответ: Вопрос-Ответ

Effect *fx;
Unit *un;
...
fx = new Effect(...);
un = new Unit(...);
fx->setUnit(un);
un->setEffect(fx);
...
delete fx;
delete un;
(Offline)
 
Ответить с цитированием
Сообщение было полезно следующим пользователям:
ANIK123 (20.10.2012)
Старый 19.10.2012, 23:17   #23
ANIK123
Знающий
 
Аватар для ANIK123
 
Регистрация: 29.11.2010
Сообщений: 244
Написано 31 полезных сообщений
(для 49 пользователей)
Ответ: Вопрос-Ответ

зашибись, это то что надо, но как это сделать?
ведь когда эффект обьявляется перед юнитом то он не может хранить данные о юните, ибо о существовании такого типа эффекту пока ничего не известно
делаю так:
#include <effect_int.h> //интерфейс класса
#include <unit_int.h>
#include <effect.h> //определение класса
#include <unit.h>
как еще можно сделать?
__________________
Intel Core i3-4005U (1.7 ГГц), 4 ГБ ОЗУ, nVidia GeForce 940M 4 ГБ, Win8.1
(Offline)
 
Ответить с цитированием
Старый 19.10.2012, 23:29   #24
den
Дэвелопер
 
Аватар для den
 
Регистрация: 13.02.2010
Сообщений: 1,645
Написано 620 полезных сообщений
(для 2,419 пользователей)
Ответ: Вопрос-Ответ

объявления классов сначала, потом их реализация:

Unit.hpp

#include "Effect.hpp"

class Unit
{
public:
    void f(int x);
protected:
private:
    Effect *fx;
};

-----------------------------------

Unit.cpp

#include "Unit.hpp"

void Unit::f(int x)
{
   ...
}

-----------------------------------
где-то в main.cpp

#include "Unit.hpp"
#include "Effect.hpp"
...
Effect *fx;
Unit *un;
...
fx = new Effect(...);
un = new Unit(...);
fx->setUnit(un);
un->setEffect(fx);
...
delete fx;
delete un;
(Offline)
 
Ответить с цитированием
Сообщение было полезно следующим пользователям:
ANIK123 (20.10.2012)
Старый 20.10.2012, 00:06   #25
ANIK123
Знающий
 
Аватар для ANIK123
 
Регистрация: 29.11.2010
Сообщений: 244
Написано 31 полезных сообщений
(для 49 пользователей)
Ответ: Вопрос-Ответ

ругается на переопределение классов(
извиняюсь, привык тупо последовательно инклюдить в главный срр хедеры в которых и описание и определение, а как работать с срр-шниками я без понятия
пока получается та же зависимость от последовательности как и раньше
так как же дать знать юниту о эффекте и эффекту о юните?
__________________
Intel Core i3-4005U (1.7 ГГц), 4 ГБ ОЗУ, nVidia GeForce 940M 4 ГБ, Win8.1
(Offline)
 
Ответить с цитированием
Старый 20.10.2012, 00:41   #26
den
Дэвелопер
 
Аватар для den
 
Регистрация: 13.02.2010
Сообщений: 1,645
Написано 620 полезных сообщений
(для 2,419 пользователей)
Ответ: Вопрос-Ответ

ох я тебе не всё написал)
см вложения, там полная версия)
Вложения
Тип файла: zip test.zip (1.6 Кб, 350 просмотров)
(Offline)
 
Ответить с цитированием
Сообщение было полезно следующим пользователям:
ANIK123 (20.10.2012)
Старый 20.10.2012, 00:54   #27
ANIK123
Знающий
 
Аватар для ANIK123
 
Регистрация: 29.11.2010
Сообщений: 244
Написано 31 полезных сообщений
(для 49 пользователей)
Ответ: Вопрос-Ответ

О БОЖЕ! Работает! Впервые вижу запись типа: "class Effect;", но ОНО работает! С_П_А_С_И_Б_О!
ПС: Бл%№ь, теперь требуется полная переработка проекта
__________________
Intel Core i3-4005U (1.7 ГГц), 4 ГБ ОЗУ, nVidia GeForce 940M 4 ГБ, Win8.1
(Offline)
 
Ответить с цитированием
Старый 20.10.2012, 19:41   #28
ANIK123
Знающий
 
Аватар для ANIK123
 
Регистрация: 29.11.2010
Сообщений: 244
Написано 31 полезных сообщений
(для 49 пользователей)
Ответ: Вопрос-Ответ

Блин, оказалось что у меня куча глобальных переменных, которые блин, используются в многих местах
как теперь быть?
например char buffer[2048]; стыреный из сэмплов ксорса - в каждом хедере его добавлять? ну а другие переменные, которые должны быть уникальными - что с ними делать?
__________________
Intel Core i3-4005U (1.7 ГГц), 4 ГБ ОЗУ, nVidia GeForce 940M 4 ГБ, Win8.1
(Offline)
 
Ответить с цитированием
Старый 20.10.2012, 19:43   #29
HolyDel
 
Регистрация: 26.09.2006
Сообщений: 6,035
Написано 1,474 полезных сообщений
(для 2,707 пользователей)
Ответ: Вопрос-Ответ

1) переписать все к чертям
2) сделать файл globals.h в котором будут
extern int g_my_global_int
globlas.cpp в котором будут
int g_my_global_int = 0;
во всех cpp-шках включать globals.h
(Offline)
 
Ответить с цитированием
Сообщение было полезно следующим пользователям:
ANIK123 (20.10.2012)
Старый 20.10.2012, 19:58   #30
den
Дэвелопер
 
Аватар для den
 
Регистрация: 13.02.2010
Сообщений: 1,645
Написано 620 полезных сообщений
(для 2,419 пользователей)
Ответ: Вопрос-Ответ

глобальные переменные зло, переработай архитектуру пока не поздно
(Offline)
 
Ответить с цитированием
Ответ


Опции темы

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


Часовой пояс GMT +4, время: 02:30.


vBulletin® Version 3.6.5.
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Перевод: zCarot
Style crйe par Allan - vBulletin-Ressources.com