Массивоподобный контейнер в Qt с унаследованными классами - PullRequest
0 голосов
/ 01 мая 2020

Я пишу приложение GUI в Qt для работы с физическими устройствами, такими как нагреватель или насос и т. Д. c. и хотите использовать контейнерный класс, такой как QList, для хранения нескольких различных экземпляров / указателей.

Что-то вроде ...

class Device { /* common member variables, functions */ }
class DeviceA : public Device { /* Add specific member variables, functions */ }
class DeviceB : public Device { /* Add another specific member variables, functions */ }

QList<*Device> *deviceList;

deviceList = new QList<Device*>;

DeviceA *a1 = new DeviceA;
DeviceA *a2 = new DeviceA;

devices->append(a1);
devices->append(a2);

foreach ( auto dev, devices ) { /* do something */ }

Но это, должно быть, не очень хорошая идея, возможно, потому что Размер устройства меньше, чем у наследующих устройств. Как я могу реализовать эти случаи?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...