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

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

Страниц: [1]   Вниз
  Печать  
Автор Тема: [QT 3.3] Создание классов в цикле  (Прочитано 3631 раз)
Viliam_Volos_V
Гость
« : Июль 04, 2008, 15:54 »

Ну подскажите плиз
Есть цикл в котором создаётся класс
И при каждом проходе должен создавать новый клас с новым именем например:
Class0
Class1
Class2
и тд

т.е. чтобы имя класса динамически менялось

Спасибо
Записан
Tonal
Гость
« Ответ #1 : Июль 04, 2008, 17:24 »

А ты на чём пишешь? На python-е это может выглядеть так:
Код:
for n in xrange(10):
  cls = type('Class%d' % n, (object,), dict(...))
Только не понятно, какое отношение это к Qt имеет, и зачем может понадобиться...
Записан
Red Devil
Гость
« Ответ #2 : Июль 05, 2008, 13:36 »

Тебе нужно использовать паттерн типа фабричного метода. Кроме того создаваемые классы должны быть унаследованы от одного класса.

Код:
enum 
{
     TYPE_A, TYPE_B, TYPE_C
};
class Base
{
public:
     virtual int Type() = 0;
};

class A : public Base
{
public:
      virtual int Type() { return TYPE_A; }
};

class B : public Base
{
public:
      virtual int Type() { return TYPE_B; }
};

class C : public Base
{
public:
      virtual int Type() { return TYPE_C; }
};

Base * CreateObject(int nType)
{
       switch (nType)
       {
             case TYPE_A : return new A;
             case TYPE_B : return new B;
             case TYPE_C : return new C;
             default : return 0;
       }
}

for (int i = 0; i < 3; ++i)
{
        Base * p = CreateObject(i);
}


Примерно вот так вообщем. Для классов Qt это конечно будет сложнее, если используются абсолютно разные классы. Опиши задачу подробнее, потому что слету ее вряд ли можно решить.
« Последнее редактирование: Июль 05, 2008, 13:41 от Red Devil » Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


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