<?xml version="1.0" encoding="utf-8"?>
<page xmlns="http://projectmallard.org/1.0/" xmlns:its="http://www.w3.org/2005/11/its" type="topic" id="tech-gobject" lang="de">
  <info>
    <link type="guide" xref="tech" group="gobject"/>

    <credit type="author copyright">
      <name>Federico Mena Quintero</name>
      <email its:translate="no">federico@gnome.org</email>
      <years>2013</years>
    </credit>

    <license xmlns="http://projectmallard.org/1.0/" href="http://creativecommons.org/licenses/by-sa/3.0/us/">
<p>This work is licensed under a
<link href="http://creativecommons.org/licenses/by-sa/3.0/us/">Creative Commons
Attribution-Share Alike 3.0 United States License</link>.</p>
<p>Als besondere Ausnahme gewähren die Besitzer des Urheberrechts Erlaubnis, den Beispiel-Code in diesem Dokument zu kopieren, verändern und weiterzugeben, unter den Bedingungen Ihrer Wahl, ohne Einschränkungen.</p>
</license>

    <desc>C-basiertes Objekt- und Typ-System mit Signalen und Slots</desc>
  <credit type="translator copyright"><name>Mario Blättermann</name><email>mario.blaettermann@gmail.com</email><years>2009-2012, 2016</years></credit><credit type="translator copyright"><name>Christian Kirbach</name><email>christian.kirbach@gmail.com</email><years>2011, 2012, 2015, 2017, 2018</years></credit><credit type="translator copyright"><name>Aljosha Papsch</name><email>al@rpapsch.de</email><years>2012</years></credit><credit type="translator copyright"><name>Tim Sabsch</name><email>tim@sabsch.com</email><years>2019</years></credit></info>

<title>GObject</title>

  <p>GObject ist der Teil der <link xref="tech-glib">GLib</link>-Bibliothek, der ein Objekt- und Typensystem für C-Programme bereitstellt. Obwohl C als Sprache weder Objekte noch Klassen bereitstellt, erlaubt es GObject, objektorientierte C-Programme zu schreiben.</p>

  <p>GObject stellt einen fundamentalen GType bereit, die Basis für das gesamte Typensystem, aus denen Typen wie »ints« und »strings« abgeleitet werden. Dann ist GObject selbst die Basisklasse für alle anderen Klassen. Objekte können <em>Signale</em> ausgeben, die das aufrufende Programm benachrichtigen, wenn etwas Interessantes passiert. Zum Beispiel kann ein <code>Button</code>-Objekt ein <code>clicked</code>-Signal ausgeben, um anzuzeigen, dass ein Knopf gedrückt und losgelassen wurde.</p>

  <p>GObject ist <em>inspizierbar</em>, was bedeutet, dass Sie das GObject-System nach den definierten Klassentypen, den unterstützten Methoden, den Signalen usw. fragen können. GNOMEs Sprachbindungen setzen auf diesen Inspektions-Informationen auf. Anstatt von Hand Wrapper zu schreiben, um die GNOME-APIs aus anderen Programmiersprachen aufrufen zu können, verwenden Sprachbindungen diese Informationen von GObject, um diese Wrapper automatisch selbst zu erzeugen.</p>

  <p>Sie müssen sich nicht mit GObject selbst befassen, wenn Sie für GNOME in einer objektorientierten Sprache programmieren. Dennoch kann es Ihr Leben als GNOME-Programmierer erleichtern, wenn Sie sich mit den Konzepten von GObject vertraut machen, wie Signalen und Slots.</p>

  <list style="compact">
    <item><p><link href="http://developer.gnome.org/gobject/stable/">Das Referenzhandbuch von GObject</link></p></item>
  </list>

</page>
