crossplatform.ru

Здравствуйте, гость ( Вход | Регистрация )

 
Ответить в данную темуНачать новую тему
> template классы и Q_OBJECT
ViGOur
  опции профиля:
сообщение 23.1.2008, 15:01
Сообщение #1


Мастер
******

Группа: Модератор
Сообщений: 3296
Регистрация: 9.10.2007
Из: Москва
Пользователь №: 4

Спасибо сказали: 231 раз(а)




Репутация:   40  


Сейчас узнал, что оказывается нельзя использовать шаблоны в Qt, а мне хотелось бы, интересно как это обойти?
Просто я хочу завязать его немного на сигналах и слотах... :)
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
archimed7592
  опции профиля:
сообщение 23.1.2008, 15:09
Сообщение #2


Участник
**

Группа: Участник
Сообщений: 127
Регистрация: 27.12.2007
Из: Moscow
Пользователь №: 56

Спасибо сказали: 0 раз(а)




Репутация:   0  


Чего узнал то? С нами не поделишься?
Речь о том, что moc недостаточно мудр, чтобы обрабатывать такие ситуации?
template< class T >
class A
{
    Q_OBJECT
public:
     /* ... */
};

Если да, то можно ли чуть поподробнее?(если нет - тоже :))
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
ViGOur
  опции профиля:
сообщение 23.1.2008, 15:29
Сообщение #3


Мастер
******

Группа: Модератор
Сообщений: 3296
Регистрация: 9.10.2007
Из: Москва
Пользователь №: 4

Спасибо сказали: 231 раз(а)




Репутация:   40  


Цитата(archimed7592 @ 23.1.2008, 15:09) *
Речь о том, что moc недостаточно мудр, чтобы обрабатывать такие ситуации?
Такие ситуации он просто не компилит... :(

Да вот, собственно статья: Почему в Qt для сигналов и слотов не используются шаблоны. :)

Сообщение отредактировал ViGOur - 23.1.2008, 15:30
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
ViGOur
  опции профиля:
сообщение 23.1.2008, 15:45
Сообщение #4


Мастер
******

Группа: Модератор
Сообщений: 3296
Регистрация: 9.10.2007
Из: Москва
Пользователь №: 4

Спасибо сказали: 231 раз(а)




Репутация:   40  


Я пока не пробовал, почему и спрашиваю, механизм сигналов и слотов поддерживает виртуальные функции?
Например, есть класс:
class CxAbstract : public QObject
{
    Q_OBJECT
private:
    QMap<QUuid, CxAbstract*> m_map;

public:
    CxAbstract(QObject *parent);
    ~CxAbstract();    

public:
    QUuid Add( CxAbstract *p);  // connect( this, ..., p, ...)
    void Del( QUuid uid);
};
Я от него наследую дополнительные классы например А и B, в классе А я заполняю QMap обьектами класса B, которые соответственно связываются сигналами и слотами. Будет это правильно работать?

Сейчас думаю попробовать... :)
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
archimed7592
  опции профиля:
сообщение 23.1.2008, 15:50
Сообщение #5


Участник
**

Группа: Участник
Сообщений: 127
Регистрация: 27.12.2007
Из: Moscow
Пользователь №: 56

Спасибо сказали: 0 раз(а)




Репутация:   0  


Цитата(ViGOur @ 23.1.2008, 15:45) *
Я пока не пробовал, почему и спрашиваю, механизм сигналов и слотов поддерживает виртуальные функции?
Смотря что под этим понимать :). Виртуальность сигнала - понятие растяжимое(сформулировать сможешь? ;)), а слоты - это обыкновенные ф-ции. К примеру, в Qt'шных классах нередко можно встретить виртуальные слоты.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
archimed7592
  опции профиля:
сообщение 23.1.2008, 15:52
Сообщение #6


Участник
**

Группа: Участник
Сообщений: 127
Регистрация: 27.12.2007
Из: Moscow
Пользователь №: 56

Спасибо сказали: 0 раз(а)




Репутация:   0  


Цитата(ViGOur @ 23.1.2008, 15:45) *
Будет это правильно работать?
Не совсем понял, что именно?
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
ViGOur
  опции профиля:
сообщение 23.1.2008, 16:18
Сообщение #7


Мастер
******

Группа: Модератор
Сообщений: 3296
Регистрация: 9.10.2007
Из: Москва
Пользователь №: 4

Спасибо сказали: 231 раз(а)




Репутация:   40  


Виртуальность поддерживается и все правильно работает. :)
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Litkevich Yuriy
  опции профиля:
сообщение 23.1.2008, 16:46
Сообщение #8


разработчик РЭА
*******

Группа: Сомодератор
Сообщений: 9669
Регистрация: 9.1.2008
Из: Тюмень
Пользователь №: 64

Спасибо сказали: 807 раз(а)




Репутация:   94  


Вот собственно у тролей написано про проблему шаблонов Academic Solutions to Academic Problems
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
ViGOur
  опции профиля:
сообщение 23.1.2008, 16:50
Сообщение #9


Мастер
******

Группа: Модератор
Сообщений: 3296
Регистрация: 9.10.2007
Из: Москва
Пользователь №: 4

Спасибо сказали: 231 раз(а)




Репутация:   40  


Я уже читаю, только на этом сайте: Academic Solutions to Academic Problems.
Так как куча статей уже переведена. :)

Правда не эта...
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Litkevich Yuriy
  опции профиля:
сообщение 27.1.2008, 1:00
Сообщение #10


разработчик РЭА
*******

Группа: Сомодератор
Сообщений: 9669
Регистрация: 9.1.2008
Из: Тюмень
Пользователь №: 64

Спасибо сказали: 807 раз(а)




Репутация:   94  


Цитата(ViGOur @ 23.1.2008, 18:45) *
механизм сигналов и слотов поддерживает виртуальные функции?

Я вот у Макса Шлее нашел:
"...Слоты могут быть и виртуальными.
Примечание
По данным фирмы Trolltech, соединение сигнала с виртуальным слотом примерно в 10 раз медленнее, чем с невиртуальным..."
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение

Быстрый ответОтветить в данную темуНачать новую тему
Теги
Нет тегов для показа


1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0




RSS Текстовая версия Сейчас: 28.4.2024, 15:33