crossplatform.ru

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


  Ответ в template классы и Q_OBJECT
Введите ваше имя
Подтвердите код

Введите в поле код из 6 символов, отображенных в виде изображения. Если вы не можете прочитать код с изображения, нажмите на изображение для генерации нового кода.
 

Опции сообщения
 Включить смайлы?
Иконки сообщения
(Опционально)
                                
                                
  [ Без иконки ]
 


Последние 10 сообщений [ в обратном порядке ]
Litkevich Yuriy Дата 27.1.2008, 1:00
 
Цитата(ViGOur @ 23.1.2008, 18:45) *
механизм сигналов и слотов поддерживает виртуальные функции?

Я вот у Макса Шлее нашел:
"...Слоты могут быть и виртуальными.
Примечание
По данным фирмы Trolltech, соединение сигнала с виртуальным слотом примерно в 10 раз медленнее, чем с невиртуальным..."
ViGOur Дата 23.1.2008, 16:50
  Я уже читаю, только на этом сайте: Academic Solutions to Academic Problems.
Так как куча статей уже переведена. :)

Правда не эта...
Litkevich Yuriy Дата 23.1.2008, 16:46
  Вот собственно у тролей написано про проблему шаблонов Academic Solutions to Academic Problems
ViGOur Дата 23.1.2008, 16:18
  Виртуальность поддерживается и все правильно работает. :)
archimed7592 Дата 23.1.2008, 15:52
 
Цитата(ViGOur @ 23.1.2008, 15:45) *
Будет это правильно работать?
Не совсем понял, что именно?
archimed7592 Дата 23.1.2008, 15:50
 
Цитата(ViGOur @ 23.1.2008, 15:45) *
Я пока не пробовал, почему и спрашиваю, механизм сигналов и слотов поддерживает виртуальные функции?
Смотря что под этим понимать :). Виртуальность сигнала - понятие растяжимое(сформулировать сможешь? ;)), а слоты - это обыкновенные ф-ции. К примеру, в Qt'шных классах нередко можно встретить виртуальные слоты.
ViGOur Дата 23.1.2008, 15:45
  Я пока не пробовал, почему и спрашиваю, механизм сигналов и слотов поддерживает виртуальные функции?
Например, есть класс:
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, которые соответственно связываются сигналами и слотами. Будет это правильно работать?

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

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

Если да, то можно ли чуть поподробнее?(если нет - тоже :))
ViGOur Дата 23.1.2008, 15:01
  Сейчас узнал, что оказывается нельзя использовать шаблоны в Qt, а мне хотелось бы, интересно как это обойти?
Просто я хочу завязать его немного на сигналах и слотах... :)
Просмотр темы полностью (откроется в новом окне)
RSS Текстовая версия Сейчас: 13.5.2024, 12:29