<?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[Quellcode trennen]]></title><description><![CDATA[<p>Hallo..<br />
Ich habe des öfteren gelesen, das man sinnvoller Weise den Quellcode trennen sollte und beispielsweise Funktionsprototypen in einer Header Datei ablegt. Soweit ist mir das auch klar. Aber wo schreibe ich denn rein, was die Funktion letztendlich tun soll? Ich steige da nicht so ganz durch und finde über google immer nur den prinzipiellen Aufbau einer Headerdatei.</p>
<p>Gruss</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/194061/quellcode-trennen</link><generator>RSS for Node</generator><lastBuildDate>Mon, 28 Sep 2026 08:22:23 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/194061.rss" rel="self" type="application/rss+xml"/><pubDate>Wed, 03 Oct 2007 12:25:43 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Quellcode trennen on Wed, 03 Oct 2007 12:25:43 GMT]]></title><description><![CDATA[<p>Hallo..<br />
Ich habe des öfteren gelesen, das man sinnvoller Weise den Quellcode trennen sollte und beispielsweise Funktionsprototypen in einer Header Datei ablegt. Soweit ist mir das auch klar. Aber wo schreibe ich denn rein, was die Funktion letztendlich tun soll? Ich steige da nicht so ganz durch und finde über google immer nur den prinzipiellen Aufbau einer Headerdatei.</p>
<p>Gruss</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1377089</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1377089</guid><dc:creator><![CDATA[Feibw]]></dc:creator><pubDate>Wed, 03 Oct 2007 12:25:43 GMT</pubDate></item><item><title><![CDATA[Reply to Quellcode trennen on Wed, 03 Oct 2007 13:41:30 GMT]]></title><description><![CDATA[<p>Du schreibst die Implementierung (das, was die FUnktion machen soll) in eine eigene *.cpp-Datei. Die musst du dann allerdings dem Projekt hinzufügen (wenn du eine IDE benutzt), bzw. beim Compiler/im Makefile angeben, falls du &quot;von Hand&quot; kompilierst.</p>
<p>Beispiel:</p>
<p><strong>Quadrat.h</strong></p>
<pre><code class="language-cpp">#ifndef __QUADRAT_H__
#define __QUADRAT_H__

int Quadrat(int a);

#endif
</code></pre>
<p><strong>Quadrat.cpp</strong></p>
<pre><code class="language-cpp">#include &quot;Quadrat.h&quot;

int Quadrat(int a)
{
    return a*a;
}
</code></pre>
<p><strong>main.cpp</strong></p>
<pre><code class="language-cpp">#include &quot;Quadrat.h&quot;

#include &lt;iostream&gt;

using namespace std;

int main(void)
{
    cout &lt;&lt; &quot;Das Quadrat von &quot; &lt;&lt; 3 &lt;&lt; &quot; ist: &quot; &lt;&lt; Quadrat(3) &lt;&lt; endl;
    return 0;
}
</code></pre>
<p>Die sogenannten Include-Guards</p>
<pre><code class="language-cpp">#ifndef __QUADRAT_H__
#define __QUADRAT_H__
</code></pre>
<p>und</p>
<pre><code class="language-cpp">#endif
</code></pre>
<p>Sind dazu da, dass man einen Headerfile nicht 2 mal includen kann. Das ist oft nötig, um die ODR (One definition rule) zu erfüllen.</p>
<p>Wenn der Header das erste mal includet wird, wird die Präprozessor-Konstante definiert, sodass beim zweiten Mal alles zwischen #ifndef und #endif nicht mehr beachtet wird.</p>
<p>Felix</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1377130</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1377130</guid><dc:creator><![CDATA[Phoemuex]]></dc:creator><pubDate>Wed, 03 Oct 2007 13:41:30 GMT</pubDate></item><item><title><![CDATA[Reply to Quellcode trennen on Wed, 03 Oct 2007 16:48:31 GMT]]></title><description><![CDATA[<p>Vielen vielen Dank!</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1377341</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1377341</guid><dc:creator><![CDATA[Feibw]]></dc:creator><pubDate>Wed, 03 Oct 2007 16:48:31 GMT</pubDate></item><item><title><![CDATA[Reply to Quellcode trennen on Wed, 03 Oct 2007 17:53:04 GMT]]></title><description><![CDATA[<p>Eine Frage noch:</p>
<p>Ich sehe in der Datei &quot;stdlib.h&quot; zwar die Prototypen aber ich finde nirgends eine Datei, in der der Funktionsrumpf steht. Wo sollte man die denn finden?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1377388</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1377388</guid><dc:creator><![CDATA[Feibw]]></dc:creator><pubDate>Wed, 03 Oct 2007 17:53:04 GMT</pubDate></item><item><title><![CDATA[Reply to Quellcode trennen on Wed, 03 Oct 2007 17:58:42 GMT]]></title><description><![CDATA[<p>Die sind zu einer Library kompiliert, die von deinem Linker dazu-gelinkt wird, wenn du sie brauchst.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1377394</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1377394</guid><dc:creator><![CDATA[The-Kenny]]></dc:creator><pubDate>Wed, 03 Oct 2007 17:58:42 GMT</pubDate></item><item><title><![CDATA[Reply to Quellcode trennen on Wed, 03 Oct 2007 18:02:35 GMT]]></title><description><![CDATA[<p>Also kann ich mir das garnicht ansehen? Das Problem ist ja, dass ich zwar weiss, wie die Funktionen aufgerufen werden aber ich habe keine Ahnung was da drin passiert. Gibt es keine Möglichkeit das zu sehen?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1377400</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1377400</guid><dc:creator><![CDATA[Feibw]]></dc:creator><pubDate>Wed, 03 Oct 2007 18:02:35 GMT</pubDate></item><item><title><![CDATA[Reply to Quellcode trennen on Wed, 03 Oct 2007 18:36:12 GMT]]></title><description><![CDATA[<p>Feibw schrieb:</p>
<blockquote>
<p>Also kann ich mir das garnicht ansehen? Das Problem ist ja, dass ich zwar weiss, wie die Funktionen aufgerufen werden aber ich habe keine Ahnung was da drin passiert. Gibt es keine Möglichkeit das zu sehen?</p>
</blockquote>
<p>üblicherweise nicht und das ist auch gar nicht nötig. genau deshalb gibt es ja dokus. wie eine funktion intern arbeitet muss einen nicht interessieren. interessant ist nur, was man reinsteckt und was rauskommt.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1377427</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1377427</guid><dc:creator><![CDATA[thordk]]></dc:creator><pubDate>Wed, 03 Oct 2007 18:36:12 GMT</pubDate></item><item><title><![CDATA[Reply to Quellcode trennen on Thu, 04 Oct 2007 05:37:00 GMT]]></title><description><![CDATA[<p>Feibw schrieb:</p>
<blockquote>
<p>Also kann ich mir das garnicht ansehen? Das Problem ist ja, dass ich zwar weiss, wie die Funktionen aufgerufen werden aber ich habe keine Ahnung was da drin passiert. Gibt es keine Möglichkeit das zu sehen?</p>
</blockquote>
<p>Man sollte garnicht wissen was im Detail passiert. Eine Empfehlung in der Programmierung lautet: &quot;Programmiere gegen die Schnittstelle, nicht gegen die Implementierung&quot; (Schnittstelle sind in dem Fall die public-Member im Header, oder für Ableitungen ggf. auch noch die protected-Member).</p>
<p>Der Vorteil hieran ist, das man nachträglich auch noch die Implementierung ändern kann (z.B. weil man entweder noch nicht alle Funktionalität implementiert hat, oder Korrekturen/Optimierungen durchführt) ohne das man die aufrufenden Stellen ändern muss. Bedingung ist hierbei natürlich das die Schnittstelle die gleiche bleibt.</p>
<p>cu André</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1377533</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1377533</guid><dc:creator><![CDATA[asc]]></dc:creator><pubDate>Thu, 04 Oct 2007 05:37:00 GMT</pubDate></item></channel></rss>