<?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[Aus einer Klasse X, Funktionen der Klasse Y aufrufen?]]></title><description><![CDATA[<p>Hallo zusammen,</p>
<p>ich habe zwei Klassen CX und CY.<br />
Die Klsse CX hat eine Public Methode BYTE GetValue();. Diese möchte ich aus der Klasse CY aufrufen.</p>
<p>Hier ist der Code:</p>
<p>Main:</p>
<pre><code class="language-cpp">#include &quot;Y.h&quot;
#include &quot;X.h&quot;
CY Cy;
CX Cx;

void main()
{
Cy.test();
return 0;
}
</code></pre>
<p>Y.h</p>
<pre><code class="language-cpp">#ifndef __Y_H__
#define __Y_H__  // include once only ...

#include &quot;X.h&quot;

class CY
{
// Memberfunctions
public:
	void test();
private:

protected:
};
#endif
</code></pre>
<p>X.h</p>
<pre><code class="language-cpp">#ifndef __X_H__
#define __X_H__  // include once only ...

#include &quot;Y.h&quot;

class CX
{
// Memberfunctions
public:
	BYTE GetValue();
private:

protected:
};
#endif
</code></pre>
<p>Y.cpp</p>
<pre><code class="language-cpp">void CY::test()
{
BYTE temp;
 temp=Cx.GetValue();
}
</code></pre>
<p>X.cpp</p>
<pre><code class="language-cpp">BYTE CX::GetValue()
{
return 4;
}
</code></pre>
<p>Dieses Programm ergibt zwar keinen Sinn, erklärt aber mein Problem. Bei mir erscheint dann die Fehlermeldung: Cx undeclared identifier.<br />
Der Konstruktor und Destruktor sind mit absicht weggelassen worden.</p>
<p>Wie geht es Richtig? Cx ist doch global verfügbar gemacht worden in der Main.</p>
<p>Gruß spacehelix</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/153468/aus-einer-klasse-x-funktionen-der-klasse-y-aufrufen</link><generator>RSS for Node</generator><lastBuildDate>Mon, 07 Sep 2026 12:27:47 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/153468.rss" rel="self" type="application/rss+xml"/><pubDate>Mon, 17 Jul 2006 11:38:49 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Aus einer Klasse X, Funktionen der Klasse Y aufrufen? on Mon, 17 Jul 2006 11:38:49 GMT]]></title><description><![CDATA[<p>Hallo zusammen,</p>
<p>ich habe zwei Klassen CX und CY.<br />
Die Klsse CX hat eine Public Methode BYTE GetValue();. Diese möchte ich aus der Klasse CY aufrufen.</p>
<p>Hier ist der Code:</p>
<p>Main:</p>
<pre><code class="language-cpp">#include &quot;Y.h&quot;
#include &quot;X.h&quot;
CY Cy;
CX Cx;

void main()
{
Cy.test();
return 0;
}
</code></pre>
<p>Y.h</p>
<pre><code class="language-cpp">#ifndef __Y_H__
#define __Y_H__  // include once only ...

#include &quot;X.h&quot;

class CY
{
// Memberfunctions
public:
	void test();
private:

protected:
};
#endif
</code></pre>
<p>X.h</p>
<pre><code class="language-cpp">#ifndef __X_H__
#define __X_H__  // include once only ...

#include &quot;Y.h&quot;

class CX
{
// Memberfunctions
public:
	BYTE GetValue();
private:

protected:
};
#endif
</code></pre>
<p>Y.cpp</p>
<pre><code class="language-cpp">void CY::test()
{
BYTE temp;
 temp=Cx.GetValue();
}
</code></pre>
<p>X.cpp</p>
<pre><code class="language-cpp">BYTE CX::GetValue()
{
return 4;
}
</code></pre>
<p>Dieses Programm ergibt zwar keinen Sinn, erklärt aber mein Problem. Bei mir erscheint dann die Fehlermeldung: Cx undeclared identifier.<br />
Der Konstruktor und Destruktor sind mit absicht weggelassen worden.</p>
<p>Wie geht es Richtig? Cx ist doch global verfügbar gemacht worden in der Main.</p>
<p>Gruß spacehelix</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1099105</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1099105</guid><dc:creator><![CDATA[spacehelix]]></dc:creator><pubDate>Mon, 17 Jul 2006 11:38:49 GMT</pubDate></item><item><title><![CDATA[Reply to Aus einer Klasse X, Funktionen der Klasse Y aufrufen? on Mon, 17 Jul 2006 12:05:50 GMT]]></title><description><![CDATA[<p>Hallo</p>
<pre><code class="language-cpp">#include &quot;Y.h&quot;
#include &quot;X.h&quot;
CY Cy; // Hier brauchst du nur Cy zu dekalrieren

void main()
{
Cy.test();
return 0;
}
</code></pre>
<p>Y.h</p>
<pre><code class="language-cpp">#ifndef __Y_H__
#define __Y_H__  // include once only ...

class CY
{
// Memberfunctions
public:
	void test();
private:

protected:
};
#endif
</code></pre>
<p>X.h</p>
<pre><code class="language-cpp">#ifndef __X_H__
#define __X_H__  // include once only ...

extern CX Cx; // Hier must du Cx deklarieren

class CX
{
// Memberfunctions
public:
	BYTE GetValue();
private:

protected:
};
#endif
</code></pre>
<p>Y.cpp</p>
<pre><code class="language-cpp">#include &quot;X.h&quot; // Hier must du CX includen
void CY::test()
{
BYTE temp;
 temp=Cx.GetValue();
}
</code></pre>
<p>X.cpp</p>
<pre><code class="language-cpp">CX cx; // Hier must du Cx implementieren und initialisieren

BYTE CX::GetValue()
{
return 4;
}
</code></pre>
<p>Allerdings sind globale Variablen nicht gut, nimm lieber Übergabe-Parameter</p>
<p>/Edit : Includes korrigiert.</p>
<p>bis bald<br />
akari</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1099119</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1099119</guid><dc:creator><![CDATA[akari]]></dc:creator><pubDate>Mon, 17 Jul 2006 12:05:50 GMT</pubDate></item><item><title><![CDATA[Reply to Aus einer Klasse X, Funktionen der Klasse Y aufrufen? on Mon, 17 Jul 2006 12:03:09 GMT]]></title><description><![CDATA[<p>Du darfst nicht gegenseitig die Dateien &quot;x.h&quot; und &quot;y.h&quot; in den Headerdateien einbinden. Such mal nach dem Begriff &quot;Vorwärtsdeklaration&quot; (forward declaration).</p>
<p><a class="plugin-mentions-user plugin-mentions-a" href="https://www.c-plusplus.net/forum/uid/7971">@akari</a>: das kommt davon, wenn man Code ungetestet übernimmt... (aber bei diesem einfachen Code sind die includes sowieso überflüssig).</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1099122</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1099122</guid><dc:creator><![CDATA[Th]]></dc:creator><pubDate>Mon, 17 Jul 2006 12:03:09 GMT</pubDate></item><item><title><![CDATA[Reply to Aus einer Klasse X, Funktionen der Klasse Y aufrufen? on Mon, 17 Jul 2006 12:51:21 GMT]]></title><description><![CDATA[<p>Hi</p>
<p>Danke für die Hilfe. Es funktioniert jetzt.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1099164</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1099164</guid><dc:creator><![CDATA[spacehelix]]></dc:creator><pubDate>Mon, 17 Jul 2006 12:51:21 GMT</pubDate></item></channel></rss>