GObject

GObject
GObject
Beispielcode
GObject-Beispielcode: Hinzufügen der Eigenschaft file-size zu einer Klasse.
Basisdaten
Entwickler Das GTK+-Team
Aktuelle Version 2.18.3
(25. September 2009)
Aktuelle Vorabversion 2.17.7
(19. August 2008)
Betriebssystem Unix, Windows, OS/2, BeOS
Programmier­sprache C
Kategorie Komponentenbibliothek
Lizenz LGPL
Deutschsprachig nein
http://gtk.org

GObject ist eine unter der freien Lizenz LGPL veröffentlichte Softwarebibliothek und ein Framework, das objektorientiertes Programmieren in der Programmiersprache C ermöglicht und auf vielen Plattformen einsetzbar ist.

Der Ansatz von GObject entspricht dem von Objective-C, welches für Anwendungsentwicklung unter Mac OS X (siehe Cocoa) verwendet wird. Als Fundament aller GTK-/GNOME-Anwendungen ist GObject die Basisklasse aller GTK-/GNOME-Klassen. Diese Softwarebibliothek hängt lediglich von der libc (siehe Standard C Library/glibc) sowie der GLib ab. GObject stellt weitere Funktionalitäten wie Events, Boxing von Datentypen, Fehlerbehandlung und das Referenzzählen bereit. Objekttypen werden erst zur Laufzeit registriert. Damit wird eine gute Introspektion der Klassen ermöglicht, allerdings auf Kosten einer starken Typsicherheit.

Die Objektorientierung bei GObject ermöglicht im Gegensatz zu C++ keine Mehrfachvererbung. Stattdessen werden Interfaceklassen wie bei Java oder C# eingesetzt. Eine Klasse in GObject wird durch mindestens zwei C-Strukturen implementiert: Eine davon beinhaltet die Informationen der Klasse, zum Beispiel die Methoden/VTable und statische Membervariablen. Die zweite beinhaltet als Instanzinformationen zum Beispiel die Membervariablen. Es gibt keine Zugriffsmodifikatoren public, protected, private wie in den Programmiersprachen C++, C# oder Java; private Klassen-Member können aber durch zusätzliche verborgene C-Strukturen implementiert werden. Diese privaten Strukturen werden nicht in den öffentlichen Header-Dateien der Klasse definiert. Bei der Erstellung einer GObject-Klasse müssen viele Makros und Initialisierungsfunktionen manuell geschrieben werden. Zur Erleichterung beim Schreiben von Klassen gibt es das Werkzeug GOB2 (GObject Builder), welches eine von Java entlehnte Syntax anbietet. GOB2 fungiert als Präprozessor, welcher aus den Objektvorlagen Code für den C-Compiler generiert. Eine Alternative zu GOB2 stellt die Programmiersprache Vala dar, welches neben dem Codegerüst auch in der Lage ist den gesamten Quelltext aus C#-ähnlicher Sprache zu übersetzen.

Wichtige Einschränkungen des GObjekt-Frameworks sind die fehlende Unterstützung von Namensräumen, keine Möglichkeit zum Überladen von Operatoren und Methoden sowie die rein „manuelle“ Ausnahmebehandlung.

Geschichte

Ursprünglich war das Objektsystem von Gtk eng mit der Benutzerschnittstelle von Gtk verwoben. Erst zur Version 2.0 von Gtk/GNOME wurde es in ein eigenes Framework ausgelagert, damit dieses Objektsystem auch ohne Einbindung von Gtk für beispielsweise reine kommandozeilengesteuerte Anwendungen und Serveranwendungen ohne grafische Benutzeroberfläche verwendet werden kann.

Einsatz

Die Kombination von C und GObject wird in vielen erfolgreichen Open-Source-Projekten eingesetzt, allen voran Gtk+ und damit schließlich dem komplettem GNOME-Desktop sowie GIMP, Pango und vielen anderen.

Weblinks


Wikimedia Foundation.

Игры ⚽ Нужна курсовая?

Schlagen Sie auch in anderen Wörterbüchern nach:

  • GObject — Тип Библиотека Разработчик GNOME Foundation Написана на C Операционная система Кроссплатформенное ПО Языки интерфейса Multilingual Аппаратная платформа …   Википедия

  • GObject — est le système d objet de la GLib. GObject est une bibliothèque libre (sous licence LGPL) qui fournit un système d objet portable. Elle est conçue pour être utilisée directement en C, ou par des binding dans d autres langages. La plupart des… …   Wikipédia en Français

  • GObject — The GLib Object System, or GObject, is a free software library (covered by the LGPL) that provides a portable object system and transparent cross language interoperability. GObject is designed for use both directly in C programs and through… …   Wikipedia

  • GObject — Una pieza típica del código de inicialización de la clase GObject. El ejemplo muestra una propiedad file size siendo añadida a alguna clase. GLib Object System, o GObject, es una biblioteca de software libre bajo la licencia LGPL que provee un… …   Wikipedia Español

  • GTK+ — Тип библиотека элементов интерфейса (виджетов) Автор The GTK+ …   Википедия

  • Vala (Programmiersprache) — Vala Paradigmen: objektorientiert Erscheinungsjahr: 2006 Entwickler: Jürg Billeter, Raffaele Sandrini Aktuelle Version: 0.14.0  (17. September 2011) …   Deutsch Wikipedia

  • GLib — Entwickler Das GTK+ Team Aktuelle Version 2.30.2 (11. November 2011) Betriebssystem Unix, Windows, OS/2, BeOS …   Deutsch Wikipedia

  • Vala (lenguaje de programación) — Vala Desarrollador(es) Jürg Billeter, Raffaele Sandrini http://live.gnome.org/Vala Información general Extensiones comunes .vala, .vapi, .gir, .c …   Wikipedia Español

  • Reference counting — In computer science, reference counting is a technique of storing the number of references, pointers, or handles to a resource such as an object or block of memory. It is typically used as a means of deallocating objects which are no longer… …   Wikipedia

  • GTK+ — Infobox software name = GTK+ developer = GNOME Foundation latest release version = 2.14.3 latest release date = release date|2008|09|24 latest preview version = latest preview date = programming language = C operating system = Cross platform… …   Wikipedia

Share the article and excerpts

Direct link
Do a right-click on the link above
and select “Copy Link”