<?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[Problem mit Klassen in mehreren Header-Dateien]]></title><description><![CDATA[<p>Hi, nachfolgend erstmal der Quelltext und dann zu meinem problem</p>
<p>&quot;klassen.cpp&quot;</p>
<pre><code>#include &lt;iostream&gt;
#include &quot;class1.h&quot;
#include &quot;class2.h&quot;

void main()
{
	klasse1 test1;
	klasse2 test2;
	test1.setz1(5);
	test2.setz2(6);
	test2.setz1(7);
	std::cout&lt;&lt;test1.getz1()&lt;&lt;&quot;\n&quot;&lt;&lt;test2.getz1()&lt;&lt;&quot;\n&quot;&lt;&lt;test2.getz2()&lt;&lt;&quot;\n&quot;;
}
</code></pre>
<p>&quot;class1.h&quot;</p>
<pre><code>#ifndef __klasse1_H__
#define __klasse1_H__

class klasse1{
protected:
	int z1;
public:
	void setz1(int i)
	{
		z1=i;
	}
	int getz1()
	{
		return z1;
	}
};
#endif
</code></pre>
<p>&quot;class2.h&quot;</p>
<pre><code>#ifndef __klasse2_H__
#define __klasse2_H__

#include &quot;class1.h&quot;

class klasse2:public klasse1{
private:
	int z2;
public:
	void setz2(int i)
	{
		z2=i;
	}
	int getz2()
	{
		return z2;
	}	
};
#endif
</code></pre>
<p>so jetzt zu meinem problem, das programm funktioniert so wie es oben dargestellt ist einwandfrei. ist auch nur ein Test-Programm , also hat auch keine weitere Funktion.</p>
<p>Das Problem ist, wenn ich mehrere Klassen und Unterklassen in verschieden Header-Dateien packe, lässt sich das programm nicht mehr kompilieren. Da hab ich nochmal nachgeschaut wie andere Leute das so machen und bin da auf folgendes gestoßen:</p>
<pre><code>#ifndef __klasse1_H__
#define __klasse1_H__
//Klassendeklarationen
#endif
</code></pre>
<p>diesen code schreiben die die da immer hin, nun habe ich dieses auch gemacht und es funktioniert. schön und gut aber möchte auch wissen warum?? hat da jemand nee eindeutige erklärung für mich ?<br />
danke schon mal</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/225882/problem-mit-klassen-in-mehreren-header-dateien</link><generator>RSS for Node</generator><lastBuildDate>Thu, 01 Oct 2026 08:06:44 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/225882.rss" rel="self" type="application/rss+xml"/><pubDate>Sun, 26 Oct 2008 13:30:49 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Problem mit Klassen in mehreren Header-Dateien on Sun, 26 Oct 2008 13:30:49 GMT]]></title><description><![CDATA[<p>Hi, nachfolgend erstmal der Quelltext und dann zu meinem problem</p>
<p>&quot;klassen.cpp&quot;</p>
<pre><code>#include &lt;iostream&gt;
#include &quot;class1.h&quot;
#include &quot;class2.h&quot;

void main()
{
	klasse1 test1;
	klasse2 test2;
	test1.setz1(5);
	test2.setz2(6);
	test2.setz1(7);
	std::cout&lt;&lt;test1.getz1()&lt;&lt;&quot;\n&quot;&lt;&lt;test2.getz1()&lt;&lt;&quot;\n&quot;&lt;&lt;test2.getz2()&lt;&lt;&quot;\n&quot;;
}
</code></pre>
<p>&quot;class1.h&quot;</p>
<pre><code>#ifndef __klasse1_H__
#define __klasse1_H__

class klasse1{
protected:
	int z1;
public:
	void setz1(int i)
	{
		z1=i;
	}
	int getz1()
	{
		return z1;
	}
};
#endif
</code></pre>
<p>&quot;class2.h&quot;</p>
<pre><code>#ifndef __klasse2_H__
#define __klasse2_H__

#include &quot;class1.h&quot;

class klasse2:public klasse1{
private:
	int z2;
public:
	void setz2(int i)
	{
		z2=i;
	}
	int getz2()
	{
		return z2;
	}	
};
#endif
</code></pre>
<p>so jetzt zu meinem problem, das programm funktioniert so wie es oben dargestellt ist einwandfrei. ist auch nur ein Test-Programm , also hat auch keine weitere Funktion.</p>
<p>Das Problem ist, wenn ich mehrere Klassen und Unterklassen in verschieden Header-Dateien packe, lässt sich das programm nicht mehr kompilieren. Da hab ich nochmal nachgeschaut wie andere Leute das so machen und bin da auf folgendes gestoßen:</p>
<pre><code>#ifndef __klasse1_H__
#define __klasse1_H__
//Klassendeklarationen
#endif
</code></pre>
<p>diesen code schreiben die die da immer hin, nun habe ich dieses auch gemacht und es funktioniert. schön und gut aber möchte auch wissen warum?? hat da jemand nee eindeutige erklärung für mich ?<br />
danke schon mal</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1605079</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1605079</guid><dc:creator><![CDATA[jontef]]></dc:creator><pubDate>Sun, 26 Oct 2008 13:30:49 GMT</pubDate></item><item><title><![CDATA[Reply to Problem mit Klassen in mehreren Header-Dateien on Sun, 26 Oct 2008 13:40:33 GMT]]></title><description><![CDATA[<p>Diese drei Präprozessordirektiven (mit dem # vorne) verhindern, dass ein und die selbe Header-Datei mehrfach #include'ded wird und der Compiler deshalb meckert.</p>
<p>Stell dir mal das hier vor:<br />
<strong>foobar.cpp:</strong></p>
<pre><code class="language-cpp">#include &quot;foobar.h&quot;
#include &quot;foobar.h&quot;
</code></pre>
<p><strong>foobar.h</strong></p>
<pre><code class="language-cpp">class A
{
};
</code></pre>
<p>Jetzt würde der Compiler meckern, weil er die Klasse A schon existiert, nämlich weil der selbe Header schon einmal eingebunden wurde:<br />
<strong>foobar.h</strong></p>
<pre><code class="language-cpp">#ifndef FOOBAR_H // &lt;-- NUR weiter machen, wenn FOOBAR_H noch NICHT definiert ist
#define FOOBAR_H // &lt;-- definiert FOOBAR_H, &quot;verhindert&quot; erneutes einbinden

class A
{
};

#endif
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1605082</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1605082</guid><dc:creator><![CDATA[devkid]]></dc:creator><pubDate>Sun, 26 Oct 2008 13:40:33 GMT</pubDate></item><item><title><![CDATA[Reply to Problem mit Klassen in mehreren Header-Dateien on Sun, 26 Oct 2008 13:54:28 GMT]]></title><description><![CDATA[<p>super, danke. das hab ich verstanden . ist natürlich logisch. deswegen hatte mein compiler auch fehler gemacht. danke dir</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1605086</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1605086</guid><dc:creator><![CDATA[jontef]]></dc:creator><pubDate>Sun, 26 Oct 2008 13:54:28 GMT</pubDate></item><item><title><![CDATA[Reply to Problem mit Klassen in mehreren Header-Dateien on Sun, 26 Oct 2008 14:59:39 GMT]]></title><description><![CDATA[<p>nennt sich auch include guard (-&gt; google kann dir da mehr erklären...)</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1605113</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1605113</guid><dc:creator><![CDATA[pumuckl]]></dc:creator><pubDate>Sun, 26 Oct 2008 14:59:39 GMT</pubDate></item></channel></rss>