GObject (немного похожий на COM в мире Windows) - это API-интерфейс C, разработанный с учетом межязыковой совместимости.
Это означает, что вы можете использовать GObjects на любом языке, который поддерживаетвызов функций C, но это очень затрудняет написание GObject-ов на языке, отличном от C, который действительно многократно используется на любом языке (если вы пишете производный класс GObject, скажем, Python, вам придется каждый раз вставлять интерпретатор PythonВы хотели использовать объекты этого класса в C).
Возможно полуавтоматизировать создание привязок для многих языков (например, Python, Perl, JS и т. д.), и в этом заключается одна из сильных сторон.объектаЭто объясняет несколько непрозрачный API, предоставляемый GObject, который, я признаю, довольно сложно понять полностью.
К сожалению, он не очень хорошо вписывается и в язык C ++.GObject не имеют тривиальных отношений с классами C ++, и даже если доступны привязки (Gtkmm), невозможно легко написать класс C ++, «наследующий от GObject», и представить его миру.Для этого вы должны написать C.
[Что понадобится миру, так это какие-то расширения языка C ++, которые позволят легко взаимодействовать с GObject, немного похоже на C ++ Cxв Windows, но 1) это трудная задача, возможно, достижимая с помощью плагина GCC, и 2) нет никакого импульса к C ++ в мире Gnome или вообще в мире Linux (KDE является заметным исключением).Пока мы застряли с привязками Gtkmm.]