Russian Qt Forum
Май 18, 2024, 02:42 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: 1 [2] 3   Вниз
  Печать  
Автор Тема: имя класса и шаблон  (Прочитано 8929 раз)
kjefes
Гость
« Ответ #15 : Март 14, 2012, 06:29 »

Да и не надо привязываться к рукам =) Мне просто было интересно узнать то ли в Qt зря отгородили от создания подобной конструкции, то ли просто VS сразу не дает по рукам, то ли это еще какая-то прихоть какой-то версии какого-то компилятора.
Записан
Bepec
Гость
« Ответ #16 : Март 14, 2012, 07:37 »

Это скорее прихоть здравого смысла... Который не даёт тебе хрень творить Веселый

Тебе нужен 1 класс. Просто с изменяемыми полями. Всё.
Нужен четырёхрукий монстр с жополицом -
Код:
Monst * tratata = new Monst("Тут его зовут", "Тут его прозвищу","Тут кол-во патронов"," тут кол-во ячеек инвенторя")
tratata->setРуки(4);
tratata->setЛицо("Жопа");
tratata->setЧеловечность("Не человек");
Записан
V1KT0P
Гость
« Ответ #17 : Март 14, 2012, 08:42 »

Тебе нужен 1 класс. Просто с изменяемыми полями. Всё.
Скорее всего ему нужна книжка по основам программирования =), ибо он такую ересь несет...
Записан
Bepec
Гость
« Ответ #18 : Март 14, 2012, 08:56 »

Ну начал человек с шаблонов, подумаешь.

Я в них только разбираться начал на второй год серьёзно, а он сразу начал.

Это его право!!!!

Он достоин (n+1) шаблонов, заменяемых впрочем на 1 класс Подмигивающий
Записан
mutineer
Гость
« Ответ #19 : Март 14, 2012, 11:09 »

Да в том и дело, что хотел сделать так, придется по другому хранить данные.
Номер не в имени, а просто у каждого класса свой порядковый номер будет, который не повторяется, да и скорость поиска нужного класса по номеру вполне меня устраивает.

так номер все-таки будет полем?
Записан
Bepec
Гость
« Ответ #20 : Март 14, 2012, 12:06 »

У него такая каша... Думается он и сам незнает что чем будет.

Мой совет - листок бумаги -> ручка -> примерный алгоритм работы -> понимание сложных мест -> доработка алгоритма -> и только тогда - реализация Подмигивающий
Записан
V1KT0P
Гость
« Ответ #21 : Март 14, 2012, 12:11 »

У него такая каша... Думается он и сам незнает что чем будет.

Мой совет - листок бумаги -> ручка -> примерный алгоритм работы -> понимание сложных мест -> доработка алгоритма -> и только тогда - реализация Подмигивающий
Как по мне то ему надо: учебник по программированию -> простенькие програмки -> просмотр и понимание исходников простеньких игр -> попытка сделать простенькую игру -> еще раз взять учебник и прочитать непонятные моменты -> снова попробовать написать простенькую игру -> понять что архитектуру следует продумывать заранее -> переписывание игры -> еще раз посмотреть как делают простенькие игры -> повторять предыдущие три шага пока не достигнет прозрения -> начать писать игру которую хочет ну и т.д. =)
Записан
Bepec
Гость
« Ответ #22 : Март 14, 2012, 12:13 »

Мой алгоритм как бы проще Подмигивающий Он уже на 3 пункте поймёт что нужно читать учебник Веселый
Записан
Igors
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 11445


Просмотр профиля
« Ответ #23 : Март 14, 2012, 13:32 »

Это скорее прихоть здравого смысла... Который не даёт тебе хрень творить Веселый

Тебе нужен 1 класс. Просто с изменяемыми полями. Всё.
Нужен четырёхрукий монстр с жополицом -
1 класс - в духе "мастеров простых решений". Классы могут быть очень слабо связаны или вообще никак, появляется масса полей/методов которые значимы для некоторых или вообще одного класса. Если уж фабрика - ну и делайте фабрику, обзаводитесь инвентарем и.т.п

Код
C++ (Qt)
struct CInventory {
 virtual int Type( void ) const = 0;
 virtual QString Name( void ) const = 0;
 virtual CBaseClass * Create( void ) = 0;
};
 
// для каждого из 15 создаете свой инвентарь и сохраняете в мапе
RegisterInventory( new CMyClass1_Inventory );
RegisterInventory( new CMyClass2_Inventory );
...
 
// ну и крутите с мапой
 
Записан
Bepec
Гость
« Ответ #24 : Март 14, 2012, 13:43 »

А в любом случае универсальных классов не будет. Никогда. Нигде.

Потому нужно разделять.
К примеру возьмём любую игру (вообще). Там тупо несколько классов - игрок (заодно и монстр), инвентарь (для всех объектов несущих что-то), бафы(общие опять таки для всех), объекты (стены и прочая хреновина), вещь(то что в инвенторе.)

При этом каждый класс может быть любым классом. Делаем игрока-стену неубиваемую. Или же стену-сундук. Или же монстра-бафера.

И уже при помощи этих классов создаётся любая пвп игра.
Записан
Igors
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 11445


Просмотр профиля
« Ответ #25 : Март 14, 2012, 15:45 »

Инвентарь в играх - обычно нормальные объекты/модели. Инвентарь в фабрике - маленькие классы чтобы как-то "связаться" с исполняющими классами, ну хотя бы создать экземпляр. Впрочем лично я от фабрики не в восторге
Записан
Bepec
Гость
« Ответ #26 : Март 14, 2012, 15:52 »

Igor's поделись разницей фабрики и динамического создания классов?

Хотя по сути это ведь одно и то же?
Записан
BRE
Гость
« Ответ #27 : Март 14, 2012, 15:53 »

динамического создания классов
Такого не может быть в C++.
Записан
Igors
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 11445


Просмотр профиля
« Ответ #28 : Март 14, 2012, 18:05 »

Igor's поделись разницей фабрики и динамического создания классов?

Хотя по сути это ведь одно и то же?
Не знаю о каком динамическом создании Вы говорите. Фабрика - по сути то что человек написал здесь
Есть паттерн фабричный метод =) У меня в нем названия классов передаются через параметр, т.е.
Код:
Product *Creator::Create(QString name, QString text)
{
    if(name== "name1") return new name1(text);
    if(name== "name2") return new name2(text);
    if(name== "name3") return new name3(text);
    //...
    if(name== "nameN") return new nameN(text);
    return new Unknown(text);
}
Но так прямолинейно не очень хорошо. Напр у меня классы name1, name2.. - загрузчики имеджей разных форматов. Появляется имедж, надо как-то подобрать ему загрузчик из имеющихся. Сначала по типу файла, потом (если не получилось) по расширению, потом попытаться открыть, потом может прочитать (весь или только инфу). На каждой из этих операций мне нужно перебирать все загрузчики, вот и фабрика чтобы автоматизировать.
Записан
Bepec
Гость
« Ответ #29 : Март 15, 2012, 06:57 »

У блин Улыбающийся А мне проще класс написать определения типа изображения. Но принцип понял, спасибо Улыбающийся
Записан
Страниц: 1 [2] 3   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.364 секунд. Запросов: 21.