Inhaltsverzeichnis

Grundlegende Implementierungen

Dieser Schritt wird ganz einfach: Wir definieren unsere privaten Strukturen und geben GObject den Namen unseres GObject an.

Die private Struktur

Zuerst füllen wir unsere .c mit etwas Inhalt:

tutorial-tier.c
/*
 * Copyright- und Lizenzinformationen
 */
 
#include "tutorial-tier.h"


Das sollte jedem von euch klar sein.

Weiter geht es mit der Definition der privaten Struktur.

Wir erinnern uns: C ist keine objektorientierte Sprache. Daher sind alle Member einer Struktur jederzeit von jedem veränderbar. Allerdings gehört Information Hiding zu den Grundprinzipien des klassenbasierten Programmierens. Da behilft man sich eines Tricks: Man definiert eine eigene Struktur für die privaten Member static in der .c Datei.

tutorial-tier.c
static struct _TutorialTierPrivate
{
    gint alter;
    gchar *ruf;
};


Damit hätten wir unsere private Struktur definiert.

Doch ist es damit noch nicht getan:

tutorial-tier.c
#define TUTORIAL_TIER_GET_PRIVATE(obj) (G_TYPE_INSTANCE_GET_PRIVATE((obj), TUTORIAL_TYPE_TIER, TutorialTierPrivate))

Dieses Makro werden wir im nächsten Kapitel einsetzen.

Das GObject definieren

Auch dieser Schritt ist schnell erledigt: 1 Zeile Code.

tutorial-tier.c
G_DEFINE_TYPE(TutorialTier, tutorial_tier, G_TYPE_OBJECT);

Zuerst geben wir den Namen unserer Klasse an, dann das Präfix für Methoden (siehe vorheriges Kapitel). Schließlich bestimmen wir das Basisobjekt.

Hinweis: Jede Klasse muss mindestens von GObject abgeleitet werden!

Doch was tut dieses Makro?

Damit wäre dieser (zugegeben sehr kleine) Schritt vollendet. Im nächsten Kapitel definieren wir die Erstellungsroutinen für unser GObject.

zurück || hoch zur Startseite || weiter