<?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[Klassen in Static Library packen]]></title><description><![CDATA[<p>Hallo,</p>
<p>ich habe vor eine statische Library zu bauen auf deren Klassen und Funktionen ich von anderen Projekten zugreifen will.<br />
Nun klappt das mit den Funktionen schon nur wenn ich die Klassen benutzen will, habe ich noch Probleme und der Compiler beschwert sich.</p>
<pre><code class="language-cpp">#ifndef TESTCLASS_H_
#define TESTCLASS_H_

#include &quot;iostream&quot;

class TestClass
{
public:
	TestClass();
	virtual ~TestClass();
};

#endif /*TESTCLASS_H_*/
</code></pre>
<pre><code class="language-cpp">#include &quot;TestClass.h&quot;

TestClass::TestClass()
{
	std::cout&lt;&lt;&quot;Hallo Klasse&quot;&lt;&lt;std::endl;
}

TestClass::~TestClass()
{
	std::cout&lt;&lt;&quot;Tschüss Klasse&quot;&lt;&lt;std::endl;
}
</code></pre>
<pre><code class="language-cpp">#include &lt;iostream&gt;

void SayHello();
class TestClass;

int main ()
{
	SayHello();
	TestClass* Test = new TestClass(); 
	//hier beschwert sich der Compiler wegen Forward-Deklaration von TestClass
	return 1;	
}
</code></pre>
<p>Wie gesagt. SayHello gibt einfach einen Text auch das klappt soweit. Nur die Klasse eben nicht.<br />
Ich hatte versucht die Klasse mit eine Forward Deklaration einzubinden, aber wenn ich dann ein neues Objekt anlegen will, klappts nicht. Was ja auch Sinn macht, aber ich weiß jetzt nicht wie ich die Klasse da rein bekomme. Normalerweise würde ich ja ein include nehmen, aber bei einer Library?</p>
<p>Kann mir jemand nen Tip geben?</p>
<p>Danke</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/211179/klassen-in-static-library-packen</link><generator>RSS for Node</generator><lastBuildDate>Tue, 13 Oct 2026 21:53:42 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/211179.rss" rel="self" type="application/rss+xml"/><pubDate>Sun, 20 Apr 2008 07:33:18 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Klassen in Static Library packen on Sun, 20 Apr 2008 07:33:18 GMT]]></title><description><![CDATA[<p>Hallo,</p>
<p>ich habe vor eine statische Library zu bauen auf deren Klassen und Funktionen ich von anderen Projekten zugreifen will.<br />
Nun klappt das mit den Funktionen schon nur wenn ich die Klassen benutzen will, habe ich noch Probleme und der Compiler beschwert sich.</p>
<pre><code class="language-cpp">#ifndef TESTCLASS_H_
#define TESTCLASS_H_

#include &quot;iostream&quot;

class TestClass
{
public:
	TestClass();
	virtual ~TestClass();
};

#endif /*TESTCLASS_H_*/
</code></pre>
<pre><code class="language-cpp">#include &quot;TestClass.h&quot;

TestClass::TestClass()
{
	std::cout&lt;&lt;&quot;Hallo Klasse&quot;&lt;&lt;std::endl;
}

TestClass::~TestClass()
{
	std::cout&lt;&lt;&quot;Tschüss Klasse&quot;&lt;&lt;std::endl;
}
</code></pre>
<pre><code class="language-cpp">#include &lt;iostream&gt;

void SayHello();
class TestClass;

int main ()
{
	SayHello();
	TestClass* Test = new TestClass(); 
	//hier beschwert sich der Compiler wegen Forward-Deklaration von TestClass
	return 1;	
}
</code></pre>
<p>Wie gesagt. SayHello gibt einfach einen Text auch das klappt soweit. Nur die Klasse eben nicht.<br />
Ich hatte versucht die Klasse mit eine Forward Deklaration einzubinden, aber wenn ich dann ein neues Objekt anlegen will, klappts nicht. Was ja auch Sinn macht, aber ich weiß jetzt nicht wie ich die Klasse da rein bekomme. Normalerweise würde ich ja ein include nehmen, aber bei einer Library?</p>
<p>Kann mir jemand nen Tip geben?</p>
<p>Danke</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1494891</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1494891</guid><dc:creator><![CDATA[Emmerell]]></dc:creator><pubDate>Sun, 20 Apr 2008 07:33:18 GMT</pubDate></item><item><title><![CDATA[Reply to Klassen in Static Library packen on Sun, 20 Apr 2008 07:39:23 GMT]]></title><description><![CDATA[<p>Den Header musste schon einbinden. Sonst erkennt der Compiler den Typen nicht als vollständig deklariert.</p>
<p>Die definition ist was in der statischen library ist. Nicht aber die header mit der deklaration.</p>
<p>BR<br />
Vinzenz</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1494894</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1494894</guid><dc:creator><![CDATA[evilissimo]]></dc:creator><pubDate>Sun, 20 Apr 2008 07:39:23 GMT</pubDate></item><item><title><![CDATA[Reply to Klassen in Static Library packen on Sun, 20 Apr 2008 07:41:01 GMT]]></title><description><![CDATA[<blockquote>
<p>Normalerweise würde ich ja ein include nehmen, aber bei einer Library?</p>
</blockquote>
<p>Da auch.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1494895</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1494895</guid><dc:creator><![CDATA[gg]]></dc:creator><pubDate>Sun, 20 Apr 2008 07:41:01 GMT</pubDate></item><item><title><![CDATA[Reply to Klassen in Static Library packen on Sun, 20 Apr 2008 09:08:52 GMT]]></title><description><![CDATA[<p>Hmm, wenn ich jetzt das include auf den Pfad von der Library (also dort wo Header und cpp liegen) mache, klappt das ja auch.<br />
Aber dann verstehe ich den SInn nicht von den Libraries.<br />
Wenn ich sowieso die Header mitliefern muß, kann ich auch noch die cpp mitgeben und ich spare mir die Lib.<br />
Ich dachte, die Libs wären so gedacht, daß man einfach angibt wo die liegt und dann könnte man auf deren Funktionen und Methoden zugreifen.</p>
<p>Was ist denn dann der Vorteil von libs?</p>
<p>Gruß</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1494920</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1494920</guid><dc:creator><![CDATA[Emmerell]]></dc:creator><pubDate>Sun, 20 Apr 2008 09:08:52 GMT</pubDate></item><item><title><![CDATA[Reply to Klassen in Static Library packen on Sun, 20 Apr 2008 09:28:37 GMT]]></title><description><![CDATA[<p>Emmerell schrieb:</p>
<blockquote>
<p>Hmm, wenn ich jetzt das include auf den Pfad von der Library (also dort wo Header und cpp liegen) mache, klappt das ja auch.<br />
Aber dann verstehe ich den SInn nicht von den Libraries.<br />
Wenn ich sowieso die Header mitliefern muß, kann ich auch noch die cpp mitgeben und ich spare mir die Lib.<br />
Ich dachte, die Libs wären so gedacht, daß man einfach angibt wo die liegt und dann könnte man auf deren Funktionen und Methoden zugreifen.</p>
<p>Was ist denn dann der Vorteil von libs?</p>
<p>Gruß</p>
</blockquote>
<p>Der Header beschreibt das Interface Deiner Funktionen, also was rein geht, was raus geht, die Namen und ggf. die Daten. Im cpp steht drin, was <strong>wie</strong> getan werden soll.<br />
Der Bunutzer einer Lib muss nur wissen, was eine Funktion/Klasse tut, was die Bedingungen sind, damit alles ordnungsgemäß läuft und <strong>was</strong> die Klassen/Funktionen machen. Er muss nicht wissen, <strong>wie</strong> sie es machen.<br />
z.B. die sin(x) Funktion aus &lt;cmath&gt;. Da weisst Du, dass sie den Sinus des gegeneben Wertes berechnet, Du weisst, was reingeht und was rauskommt, Du weisst aber nicht, was intern abläuft um zum Ergebnis zu kommen. Das musst Du auch nicht wissen...</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1494924</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1494924</guid><dc:creator><![CDATA[Tachyon]]></dc:creator><pubDate>Sun, 20 Apr 2008 09:28:37 GMT</pubDate></item><item><title><![CDATA[Reply to Klassen in Static Library packen on Sun, 20 Apr 2008 18:20:05 GMT]]></title><description><![CDATA[<p>in zeile 4 machste doch auch nen include(iostream)!<br />
Schau dir mal den include ordner von deinem compiler an! Der müsste voll mit headern sein...</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1495238</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1495238</guid><dc:creator><![CDATA[QarateKid]]></dc:creator><pubDate>Sun, 20 Apr 2008 18:20:05 GMT</pubDate></item><item><title><![CDATA[Reply to Klassen in Static Library packen on Mon, 21 Apr 2008 04:20:38 GMT]]></title><description><![CDATA[<p>Morgen zusammen,</p>
<p>da habt ihr natürlich recht ;-). Ich habe immer Dateien inkludiert und nie so recht drübernachgedacht :-). Jetzt macht das alles auch Sinn mit der Lib.</p>
<p>Danke, jetzt funzt alles so wie gewünscht.</p>
<p>Gruß</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1495348</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1495348</guid><dc:creator><![CDATA[Emmerell]]></dc:creator><pubDate>Mon, 21 Apr 2008 04:20:38 GMT</pubDate></item></channel></rss>