Я перебирал иерархию классов Qt и читал, что не все объекты наследуются от QObject, например QString. Я хотел знать, где QVariant стоит в иерархии классов. Я не мог найти диаграмму иерархии классов, которая могла бы объяснить это.
Библиотека Qt пытается имитировать (и, возможно, расширять) стандартные и ускоряющие библиотеки. Например, QString
похожа на std::string
, QVector
на std::vector
и QVariant
каким-то образом связана с boost::variant
. Эти объекты не являются частью иерархии основного класса, которая начинается с QObject
, но вместо этого является частью модуля QtCore.
QVariant не является QObject и не наследует ни от какого другого типа Qt (не имеет иерархии).