<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0"><channel><title><![CDATA[Frage bezüglich Klassen]]></title><description><![CDATA[<p>Das mag jetzt zwar ein wenig blöd klingen, aber ich habe eine Fragen zu etwas, was funktioniert, ich aber nicht genau weiss, warum es so funktioniert. Ich habe zwei Klassen, wovon eine von der anderen erbt. Nun wollte ich durch die erste Klasse auf die Funktionen der zweiten direkt zugreifen. Das Problem habe ich wie folgt gelöst:</p>
<pre><code>class Main
{
public:
	Main();
	~Main();

	class EineKlasse* MeineKlasse; //warum geht das?
	void blabla ();

};

class EineKlasse : public Main
{
public:
	EineKlasse();
	~EineKlasse();

	void asdasdasd ();

};

void Main::blabla ()
{
	MeineKlasse-&gt;asdasdasd();
}

Main MainKlasse;
void Mainfunktion ()
{
	MainKlasse.blabla();
}
</code></pre>
<p>Das ist jetzt nur ein Beispiel. Jetzt ist meine Frage, warum man <em><em>&quot;class EineKlasse</em> MeineKlasse;&quot;</em>* benutzen kann. Ich hatte das mal in einem anderen Projekt gesehen und es in diesem Projekt einfach übernommen und es scheint ohen Probleme zu laufen. Ich bin relativ neu, was die Verwendung von Klassen angeht und durch Suchen bei Google habe ich zu diesem speziellen Fall nichts gefunden. Wäre nett, wenn es mir jemand kurz erklären könnte und falls es eine bessere Lösung für das Problem gibt, diese auch zu posten.</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/233189/frage-bezüglich-klassen</link><generator>RSS for Node</generator><lastBuildDate>Fri, 25 Sep 2026 02:17:15 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/233189.rss" rel="self" type="application/rss+xml"/><pubDate>Sun, 01 Feb 2009 22:37:48 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Frage bezüglich Klassen on Sun, 01 Feb 2009 22:37:48 GMT]]></title><description><![CDATA[<p>Das mag jetzt zwar ein wenig blöd klingen, aber ich habe eine Fragen zu etwas, was funktioniert, ich aber nicht genau weiss, warum es so funktioniert. Ich habe zwei Klassen, wovon eine von der anderen erbt. Nun wollte ich durch die erste Klasse auf die Funktionen der zweiten direkt zugreifen. Das Problem habe ich wie folgt gelöst:</p>
<pre><code>class Main
{
public:
	Main();
	~Main();

	class EineKlasse* MeineKlasse; //warum geht das?
	void blabla ();

};

class EineKlasse : public Main
{
public:
	EineKlasse();
	~EineKlasse();

	void asdasdasd ();

};

void Main::blabla ()
{
	MeineKlasse-&gt;asdasdasd();
}

Main MainKlasse;
void Mainfunktion ()
{
	MainKlasse.blabla();
}
</code></pre>
<p>Das ist jetzt nur ein Beispiel. Jetzt ist meine Frage, warum man <em><em>&quot;class EineKlasse</em> MeineKlasse;&quot;</em>* benutzen kann. Ich hatte das mal in einem anderen Projekt gesehen und es in diesem Projekt einfach übernommen und es scheint ohen Probleme zu laufen. Ich bin relativ neu, was die Verwendung von Klassen angeht und durch Suchen bei Google habe ich zu diesem speziellen Fall nichts gefunden. Wäre nett, wenn es mir jemand kurz erklären könnte und falls es eine bessere Lösung für das Problem gibt, diese auch zu posten.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1656240</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1656240</guid><dc:creator><![CDATA[FondoSin]]></dc:creator><pubDate>Sun, 01 Feb 2009 22:37:48 GMT</pubDate></item><item><title><![CDATA[Reply to Frage bezüglich Klassen on Sun, 01 Feb 2009 22:48:41 GMT]]></title><description><![CDATA[<p>FondoSin schrieb:</p>
<blockquote>
<p>Das mag jetzt zwar ein wenig blöd klingen, aber ich habe eine Fragen zu etwas, was funktioniert, ich aber nicht genau weiss, warum es so funktioniert.</p>
</blockquote>
<p>Das ist gar nicht so unüblich... <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f609.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--winking_face"
      title=";)"
      alt="😉"
    /></p>
<p>FondoSin schrieb:</p>
<blockquote>
<p>Jetzt ist meine Frage, warum man <em><em>&quot;class EineKlasse</em> MeineKlasse;&quot;</em>* benutzen kann. [...] Wäre nett, wenn es mir jemand kurz erklären könnte und falls es eine bessere Lösung für das Problem gibt, diese auch zu posten.</p>
</blockquote>
<p>Da du das <code>class</code> -Schlüsselwort direkt davor schreibst, weiss der Compiler, dass eine Klasse namens <code>EineKlasse</code> existiert. Besser ist allerdings, du machst eine Vorwärtsdeklaration, denn bei Typen schreibt man normalerweise kein <code>class</code> oder <code>struct</code> hin.</p>
<pre><code class="language-cpp">class EineKlasse; // Vorwärtsdeklaration

class Main 
{ 
    EineKlasse* MeineKlasse;
};
</code></pre>
<p>Falls du damit meinst, warum du einen Zeiger auf eine abgeleitete Klasse haben kannst: Das geht, weil Zeiger und Referenzen nur Verweise auf andere Objekte sind. Die Basisklasse enthält also kein Objekt der abgeleiteten Klasse, sondern nur einen Zeiger darauf. Das Objekt dahinter selber befindet sich sonst irgendwo (wenn es eines gibt).</p>
<p>Deine <code>Mainfunktion()</code> hat aber hoffentlich eine andere Signatur?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1656246</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1656246</guid><dc:creator><![CDATA[Nexus]]></dc:creator><pubDate>Sun, 01 Feb 2009 22:48:41 GMT</pubDate></item><item><title><![CDATA[Reply to Frage bezüglich Klassen on Sun, 01 Feb 2009 23:18:33 GMT]]></title><description><![CDATA[<p>Vielen Dank für die Antwort. Mir hat der Begriff &quot;Vorwärtsdeklaration&quot; gefeht. Der Code ist umgeschrieben und funktioniert weiterhin ohne Probleme.</p>
<blockquote>
<p>Deine Mainfunktion() hat aber hoffentlich eine andere Signatur?</p>
</blockquote>
<p>Das war, wie gesagt, nur ein Beispiel, damit es nicht zu komplex wird <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f609.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--winking_face"
      title=";)"
      alt="😉"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1656259</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1656259</guid><dc:creator><![CDATA[FondoSin]]></dc:creator><pubDate>Sun, 01 Feb 2009 23:18:33 GMT</pubDate></item><item><title><![CDATA[Reply to Frage bezüglich Klassen on Sun, 01 Feb 2009 23:25:16 GMT]]></title><description><![CDATA[<p>FondoSin schrieb:</p>
<blockquote>
<p>Das war, wie gesagt, nur ein Beispiel, damit es nicht zu komplex wird <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f609.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--winking_face"
      title=";)"
      alt="😉"
    /></p>
</blockquote>
<p>Ich meint mehr die Signatur selber als den Inhalt (zudem wollte ich auch auf <code>void</code> anspielen)... <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f609.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--winking_face"
      title=";)"
      alt="😉"
    /></p>
<p>Wie auch immer, die <code>main()</code> -Funktion muss standardmässig so aussehen:</p>
<pre><code class="language-cpp">int main();    // oder
int main(int argc, char** argv);
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1656260</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1656260</guid><dc:creator><![CDATA[Nexus]]></dc:creator><pubDate>Sun, 01 Feb 2009 23:25:16 GMT</pubDate></item><item><title><![CDATA[Reply to Frage bezüglich Klassen on Sun, 01 Feb 2009 23:36:34 GMT]]></title><description><![CDATA[<p>Das ist mir schon klar, ich programmiere ja nun nicht erst seit vorgestern. Die oben genannten Funktions -und Klassennamen habe ich mir nur der Übersicht wegen ausgedacht, sie haben überhaupt nichts mit meinem Projekt (DLL) zu tun.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1656264</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1656264</guid><dc:creator><![CDATA[FondoSin]]></dc:creator><pubDate>Sun, 01 Feb 2009 23:36:34 GMT</pubDate></item><item><title><![CDATA[Reply to Frage bezüglich Klassen on Mon, 02 Feb 2009 07:12:05 GMT]]></title><description><![CDATA[<p>Nimm Linux. <a href="http://kde.org/" rel="nofollow">http://kde.org/</a></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1656306</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1656306</guid><dc:creator><![CDATA[Hakan B.]]></dc:creator><pubDate>Mon, 02 Feb 2009 07:12:05 GMT</pubDate></item></channel></rss>