class A: { signals: virtual void a() = 0;}class B: public QObject, public A{Q_OBJECTsignals: void a();}
A *instA = static_cast<A *>(new B())...connect(instA,SIGNAL(a()),this,SLOT(slot_a())
C++ (Qt)class A{public: ssc::signal<void> a; ...}; class B : public A{...}; A *instA = new B;instA->a.connect(this, &SomeClass::someMethod);
C++ (Qt)class SomeClass : public ssc::trackable{};
C++ (Qt)class A: { virtual void a() = 0;} class B: public QObject, public A{Q_OBJECTsignals: void signal_a(); void a() { emit signal_a(); }}
C++ (Qt)class A{ virtual void a() = 0;} class B: public QObject, public A{Q_OBJECT...signals: void a();}
C++ (Qt)A *instA = static_cast< A* >( new B() );...connect(dynamic_cast< QObject* >( instA ), SIGNAL( a() ), this , SLOT(slot_a() );