Суть в том что обрабатываю сообщения 2 классами:
C++ (Qt)
class Message
{
protected:
QString message;
public:
Message() {}
virtual ~Message() {}
virtual QString showMessage() const = 0;
};
class UserInteraction : public Message
{
public:
UserInteraction(QString action);
~UserInteraction() {}
QString showMessage() const;
};
class UserError : public Message
{
public:
UserNotifier(QString mess);
~UserNotifier() {}
QString showMessage() const;
};
Хотелось бы сделать так:
C++ (Qt)
connect(sender_1, SIGNAL(sendError(UserError*)),
receiver, SLOT(updateStatus(Message*)));
connect(sender_2, SIGNAL(sendMessage(UserInteraction*)),
receiver, SLOT(updateStatus(Message*)));
Но подключение не проходит и выбрасывает сообщение
QObject::connect: Incompatible sender/receiver arguments
Sender_1::sendError(UserError*) --> Receiver::updateStatus(Message*)
QObject::connect: Incompatible sender/receiver arguments
Sender_2::sendError(UserError*) --> Receiver::updateStatus(Message*)
Я понимаю что дело как раз не в совпадении типов, но хотелось бы поддержки динамического полиформизма
в данном случае, возможно ли что-то сделать?
поможет ли мне допустим boost::signal?