<?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[Aufteilung des Codes auf mehrere Dateien]]></title><description><![CDATA[<p>Hi,<br />
ich denke ich bin inzwischen in C++ ganz fit. Ich habe auch schon ein größeres Projekt mitbearbeitet, nur war da die Aufteilung schon vorgegeben.</p>
<p>Wie macht man das richtig?</p>
<p>Man trennt ja anscheined gerne die Deklaration und die Definition von Funktionen. So wird die Deklaration in einem Header-File gemacht, die Definition dann in einem cpp-File.</p>
<p>Soweit so gut. Ich sitze hier aber gerade vor einem reinen C-Projekt wo das nicht getan wurde. Trotzdem kann ich im Main-File auf Funktionen der anderen Dateien zugreifen. <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f615.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--confused_face"
      title=":confused:"
      alt="😕"
    /> <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f615.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--confused_face"
      title=":confused:"
      alt="😕"
    /></p>
<p>Warum geht das? Oder überseh ich was?</p>
<p>Mfg Mo3bius</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/273493/aufteilung-des-codes-auf-mehrere-dateien</link><generator>RSS for Node</generator><lastBuildDate>Fri, 28 Aug 2026 05:12:34 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/273493.rss" rel="self" type="application/rss+xml"/><pubDate>Wed, 08 Sep 2010 10:09:54 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Aufteilung des Codes auf mehrere Dateien on Wed, 08 Sep 2010 10:09:54 GMT]]></title><description><![CDATA[<p>Hi,<br />
ich denke ich bin inzwischen in C++ ganz fit. Ich habe auch schon ein größeres Projekt mitbearbeitet, nur war da die Aufteilung schon vorgegeben.</p>
<p>Wie macht man das richtig?</p>
<p>Man trennt ja anscheined gerne die Deklaration und die Definition von Funktionen. So wird die Deklaration in einem Header-File gemacht, die Definition dann in einem cpp-File.</p>
<p>Soweit so gut. Ich sitze hier aber gerade vor einem reinen C-Projekt wo das nicht getan wurde. Trotzdem kann ich im Main-File auf Funktionen der anderen Dateien zugreifen. <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f615.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--confused_face"
      title=":confused:"
      alt="😕"
    /> <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f615.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--confused_face"
      title=":confused:"
      alt="😕"
    /></p>
<p>Warum geht das? Oder überseh ich was?</p>
<p>Mfg Mo3bius</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1949605</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1949605</guid><dc:creator><![CDATA[Mo3bius]]></dc:creator><pubDate>Wed, 08 Sep 2010 10:09:54 GMT</pubDate></item><item><title><![CDATA[Reply to Aufteilung des Codes auf mehrere Dateien on Wed, 08 Sep 2010 10:33:40 GMT]]></title><description><![CDATA[<p>Stehen die Deklarationen vielleicht im main-file?<br />
Ansonsten stehen irgendwo garantiert Deklarationen, da das ganz sonst nicht kompiliert werden könnte, da der Compiler ja nicht weiß dass es diese Funktion gibt, die dort aufgerufen werden soll.</p>
<p>Aber gehört eigentlich denk ich sowieso ins C-Forum <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>Lg freeG</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1949611</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1949611</guid><dc:creator><![CDATA[fr33g]]></dc:creator><pubDate>Wed, 08 Sep 2010 10:33:40 GMT</pubDate></item><item><title><![CDATA[Reply to Aufteilung des Codes auf mehrere Dateien on Wed, 08 Sep 2010 10:51:40 GMT]]></title><description><![CDATA[<p><a href="http://userpage.fu-berlin.de/~ram/pub/pub_jf47ht81Ht/c++_getrennte_uebersetzung_de" rel="nofollow">http://userpage.fu-berlin.de/~ram/pub/pub_jf47ht81Ht/c++_getrennte_uebersetzung_de</a></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1949616</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1949616</guid><dc:creator><![CDATA[krümelkacker]]></dc:creator><pubDate>Wed, 08 Sep 2010 10:51:40 GMT</pubDate></item><item><title><![CDATA[Reply to Aufteilung des Codes auf mehrere Dateien on Wed, 08 Sep 2010 11:07:44 GMT]]></title><description><![CDATA[<p><a class="plugin-mentions-user plugin-mentions-a" href="https://www.c-plusplus.net/forum/uid/23000">@fr33g</a>: Ja stimmt, die Deklarationen stehen wirklich im Main-File. Mir ist das anfangs nicht so aufgefallen, da im Mainfile nur einige wenige Funktionen deklariert werden. Diese beinhalten aber jede Menge andere Funktionen. Es scheint also zu genügen, wenn man einmal in einem anderen File ist. Dann kann man von dieser Funktion andere Funktionen in dem File ausführen.</p>
<p><a class="plugin-mentions-user plugin-mentions-a" href="https://www.c-plusplus.net/forum/uid/24868">@krümelkacker</a>: Der Link war hilfreich, danke! Trotzdem verstehe ich eine Sache noch nicht ganz. Wenn ich (in C++) ein Headerfile einbinde, sagen wir class.h, wie weis der Compiler dann, dass er die Funktionen, Klassen dann in class.cpp findet?<br />
Das mag jetzt eine doofe Frage sein, aber ich möchte das halt einmal richtig verstehen. <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>Mfg Mo3bius</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1949624</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1949624</guid><dc:creator><![CDATA[Mo3bius]]></dc:creator><pubDate>Wed, 08 Sep 2010 11:07:44 GMT</pubDate></item><item><title><![CDATA[Reply to Aufteilung des Codes auf mehrere Dateien on Wed, 08 Sep 2010 11:17:41 GMT]]></title><description><![CDATA[<p>indem man bei der .cpp die Header included <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/1949628</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1949628</guid><dc:creator><![CDATA[Finn]]></dc:creator><pubDate>Wed, 08 Sep 2010 11:17:41 GMT</pubDate></item><item><title><![CDATA[Reply to Aufteilung des Codes auf mehrere Dateien on Wed, 08 Sep 2010 11:22:45 GMT]]></title><description><![CDATA[<p>Ah ok, hab mich schon gewundert warum der header dort auch eingebunden ist. <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>Mfg Mo3bius</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1949632</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1949632</guid><dc:creator><![CDATA[Mo3bius]]></dc:creator><pubDate>Wed, 08 Sep 2010 11:22:45 GMT</pubDate></item><item><title><![CDATA[Reply to Aufteilung des Codes auf mehrere Dateien on Wed, 08 Sep 2010 11:44:51 GMT]]></title><description><![CDATA[<p>Mo3bius schrieb:</p>
<blockquote>
<p>Wenn ich (in C++) ein Headerfile einbinde, sagen wir class.h, wie weis der Compiler dann, dass er die Funktionen, Klassen dann in class.cpp findet?<br />
Das mag jetzt eine doofe Frage sein, aber ich möchte das halt einmal richtig verstehen. <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 verstehe Dein Problem eventuell nicht ganz. Meinst Du viellecht folgendes...</p>
<p>class.h</p>
<pre><code class="language-cpp">#ifndef HELLO_H_INCLUDED
#define HELLO_H_INCLUDED

class hello
{
public:
  void greet() const;
};

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

void hello::greet() const
{
  std::cout &lt;&lt; &quot;Hello!\n&quot;;
}
</code></pre>
<p>main.cpp</p>
<pre><code class="language-cpp">#include &quot;class.h&quot;

int main()
{
  hello x;
  x.greet();
  return 0;
}
</code></pre>
<p>...woher der Compiler dann beim Übersetzen von main.cpp weiß, dass die Funktion hello::greet in hello.cpp definiert wird? Wenn das Deine Frage ist, dann ist die Antwort: Das muss der Compiler gar nicht wissen. Das ist Sache des Linkers. Du kannst alle cpp-Dateien einzeln übersetzen und die Resultate später mit dem Linker verbinden. Das ist ja gerade der Witz an der Sache. Beim Übersetzen von main.cpp wird nur die Datei main.cpp, class.h und iostream gelesen (eventuell noch andere, die von iostream eingebunden werden). Sonst muss der Compiler nichts weiter wissen -- auch nicht, wo hello::greet definiert wurde. Deswegen heißt das Konzept ja auch &quot;getrennte Übersetzung&quot;.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1949641</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1949641</guid><dc:creator><![CDATA[krümelkacker]]></dc:creator><pubDate>Wed, 08 Sep 2010 11:44:51 GMT</pubDate></item><item><title><![CDATA[Reply to Aufteilung des Codes auf mehrere Dateien on Wed, 08 Sep 2010 11:52:34 GMT]]></title><description><![CDATA[<p>Finn schrieb:</p>
<blockquote>
<p>indem man bei der .cpp die Header included <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>Irgendwie passt deine Antwort glaub ich nicht so ganz auf die Frage <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f615.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--confused_face"
      title=":confused:"
      alt="😕"
    /><br />
Was hat dass damit zu tun, woher der Compiler weiß wenn in der main ein Aufruf einer Funktion ist, dass diese in einer anderen Übersetzungsheinheit definiert ist?<br />
Rein gar nichts <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>Denn der Compiler muss gar nicht wissen wo die Funktion definiert wird, er braucht nur eine Deklaration der Funktion, der Rest ist Aufgabe des Linkers.</p>
<p>Lg freeG</p>
<p>Edit:<br />
Oh sorry da war ich wohl n Tick zu lange beim Post erstellen:D, krümelkacker war da wohl schneller :p</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1949647</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1949647</guid><dc:creator><![CDATA[fr33g]]></dc:creator><pubDate>Wed, 08 Sep 2010 11:52:34 GMT</pubDate></item><item><title><![CDATA[Reply to Aufteilung des Codes auf mehrere Dateien on Wed, 08 Sep 2010 12:29:52 GMT]]></title><description><![CDATA[<p>Ich glaub jetzt habe ich das verstanden. Vielen Dank für die Nachhilfe. <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f44d.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--thumbs_up"
      title=":+1:"
      alt="👍"
    /></p>
<p>Mfg Mo3bius</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1949675</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1949675</guid><dc:creator><![CDATA[Mo3bius]]></dc:creator><pubDate>Wed, 08 Sep 2010 12:29:52 GMT</pubDate></item></channel></rss>