На сколько мне известно, множественное наследование от двух и более классов библиотеки Qt запрещено из-за наличия общего предка QObject. Есть ли какой-то способ обойти это ограничение? Не хочу использовать агрегацию, так как придется писать методы для доступа к агрегированному объекту. Может кто-то знает изящное решение такой проблемы?
Сенсор подключается к компьютеру через COM-порт. Хочу написать класс для работы с сенсором унаследовав его от QSerialPort и QOrientationSensor одновременно. Мне кажется это логичным с точки зрения архитектуры программы. Если считаете, что по идеологическим причинам делать это неправильно, прошу пояснить почему.
В открытом наследовании от QSerialPort - не вижу смысла. Т.е. зачем делать доступными все методы Sensor, доставшиеся от QSerialPort? И Sensor [i]не является[/i] серийным портом, поэтому public наследование не применимо.
К примеру, если соединение с Сенсором идет на скорости 57600, формат байта 8N1, то соединение устанавливается в конструкторе и всё.
Вот закрытое наследование или агрегация - другое дело, можно повыбирать.
В книжках советуют классы делать как можно менее зависимыми друг от друга. Наследование - самая сильная зависимость.
Поэтому мой выбор - агрегация. В конструктор Сенсора передается "COM2" и дальше понятно.