<?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[Frage zu C dateien]]></title><description><![CDATA[<p>Hallo,</p>
<p>warum muss macht man die Deklaration in eine header Datei und die Implementierung in eine cpp Datei stecken. Warum diese Trennung?</p>
<p>Ist es nur der Übersichtilichkeit wegen ? Wenn ich beides in eine<br />
Datei stecke, funktionierts nämlich auch.</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/277074/frage-zu-c-dateien</link><generator>RSS for Node</generator><lastBuildDate>Wed, 26 Aug 2026 04:23:07 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/277074.rss" rel="self" type="application/rss+xml"/><pubDate>Fri, 12 Nov 2010 16:15:44 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Frage zu C dateien on Fri, 12 Nov 2010 16:15:44 GMT]]></title><description><![CDATA[<p>Hallo,</p>
<p>warum muss macht man die Deklaration in eine header Datei und die Implementierung in eine cpp Datei stecken. Warum diese Trennung?</p>
<p>Ist es nur der Übersichtilichkeit wegen ? Wenn ich beides in eine<br />
Datei stecke, funktionierts nämlich auch.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1979572</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1979572</guid><dc:creator><![CDATA[blurry333]]></dc:creator><pubDate>Fri, 12 Nov 2010 16:15:44 GMT</pubDate></item><item><title><![CDATA[Reply to Frage zu C dateien on Fri, 12 Nov 2010 16:20:59 GMT]]></title><description><![CDATA[<p>blurry333 schrieb:</p>
<blockquote>
<p>Hallo,</p>
<p>warum muss macht man die Deklaration in eine header Datei und die Implementierung in eine cpp Datei stecken. Warum diese Trennung?</p>
<p>Ist es nur der Übersichtilichkeit wegen ? Wenn ich beides in eine<br />
Datei stecke, funktionierts nämlich auch.</p>
</blockquote>
<p>Nur solange wie du die Datei nicht in zwei anderen Dateien per #include einbindest, dann gibts nämlich Fehler wegen mehrfacher Definitionen.<br />
Was das für einen Sinn hat sollte eigentlich im C++-Buch deiner Wahl stehen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1979579</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1979579</guid><dc:creator><![CDATA[pumuckl]]></dc:creator><pubDate>Fri, 12 Nov 2010 16:20:59 GMT</pubDate></item><item><title><![CDATA[Reply to Frage zu C dateien on Fri, 12 Nov 2010 16:27:06 GMT]]></title><description><![CDATA[<p>Ich denke der Grund ist vor allem historischer Natur. Damals war kompilieren verdammt zeitaufwändig und man trennte die Schnittstelle von der Implementierung, damit nur ein kleiner Teil rekompiliert werden muss, wenn sich die Implementierung ändert (die Implementierung ändert sich in der Regel deutlich häufiger als die Schnittstelle).</p>
<p>Außerdem bietet es den Vorteil, dass man dem Anwender nur die Header (neben den Libs) mitliefern muss.</p>
<p>Persönlich finde ich Header nervig und antiquiert und in allen neueren Sprachen (C#, Java etc.) gibt es dieses Konzept auch nicht mehr. Da definiert man die Klasse in einer Datei und fügt nur noch Referenzen auf die Binaries hinzu - fertig.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1979582</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1979582</guid><dc:creator><![CDATA[this-*gt*that]]></dc:creator><pubDate>Fri, 12 Nov 2010 16:27:06 GMT</pubDate></item><item><title><![CDATA[Reply to Frage zu C dateien on Fri, 12 Nov 2010 17:45:36 GMT]]></title><description><![CDATA[<p>Es gibt in C# und Java üblicherweise keine Binaries.</p>
<p>Ansonsten ist das Auftrennen in Übersetzungseinheiten aus verschiedenen Gründen eine sinnvolle Sache. Die verkürzte Kompilierzeit ist eine, Übersichtlichkeit eine andere. Auch sind statische Bibliotheken üblicherweise nicht viel mehr als Archive der aus den verschiedenen Übersetzungseinheiten erstellten Objektdateien, und bei sinnvoller Aufspaltung kann der Linker große Teile des Maschinencodes aus der Binary heraushalten, indem er nur die Objektdateien benutzt, die Symbole enthalten, die das Programm auch wirklich braucht.</p>
<p>Wenn man sich von der Maschine entfernt und andere Mechanismen als den Linker einführt, kann man die notwendigen Informationen (Funktionssignaturen, Layout der Datentypen etc.) natürlich in einem eigenen Format bekannt machen, wie es in Javas Bytecode und .nets CLI passiert, aber wo man das nicht kann bzw. will, muss man sie halt auf andere Weise bekannt machen. Für mein Verständnis sind Header da ein ziemlich geradliniger Weg, aber wenn du eine bessere Idee hast, bin ich ganz Ohr.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1979611</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1979611</guid><dc:creator><![CDATA[seldon]]></dc:creator><pubDate>Fri, 12 Nov 2010 17:45:36 GMT</pubDate></item></channel></rss>