Yes it is valid. But if you do this, you need to handling connecting to the signals/slots differently than the normal way when using the Qt 5 connect syntax.
Look at the following question and answer on how to handle connecting to overloaded signals and slots
So in short, connect as:
connect(a, &A::SomeSignal, this, static_cast<void (C::*)(void)>(&C::SomeSlot));
connect(b, &B::SomeSignal, this, static_cast<void (C::*)(int)>(&C::SomeSlot));
Or if you are using Qt 5.7 use the qOverload helper functions.
Edit: Using explicit template arguments as @TobySpeight pointed out below:
QObject::connect<void(A::*)(), void(C::*)()>(&a, &A::SomeSignal, &c, &C::SomeSlot);
QObject::connect<void(B::*)(int), void(C::*)(int)>(&b, &B::SomeSignal, &c, &C::SomeSlot);
- Seems like one must specify both template arguments to connect since the slot is overloaded.