<?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 CPP&#x2F;H in C++ nicht so streng wie in C?]]></title><description><![CDATA[<p>Hallo!</p>
<p>In Schule und Uni haben wir damals gelernt, dass die Funktionsdefinitionen ausschließlich in den C Dateien sein sollen, und in den H Dateien nur die Deklarationen stehen sollen. Das war damals aber noch die Sprache C.</p>
<p>Nun ist es in C++ aber z.B. nötig, Template Funktionen in der H Datei zu definieren. Darf man in C++ jetzt auch normale Funktionen (bei denen der Typ fix ist) in der H definieren, oder sollen die weiterhin in der CPP Datei definiert werden?</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/303878/aufteilung-cpp-h-in-c-nicht-so-streng-wie-in-c</link><generator>RSS for Node</generator><lastBuildDate>Mon, 10 Aug 2026 05:37:10 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/303878.rss" rel="self" type="application/rss+xml"/><pubDate>Thu, 24 May 2012 13:30:45 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Aufteilung CPP&#x2F;H in C++ nicht so streng wie in C? on Thu, 24 May 2012 13:30:45 GMT]]></title><description><![CDATA[<p>Hallo!</p>
<p>In Schule und Uni haben wir damals gelernt, dass die Funktionsdefinitionen ausschließlich in den C Dateien sein sollen, und in den H Dateien nur die Deklarationen stehen sollen. Das war damals aber noch die Sprache C.</p>
<p>Nun ist es in C++ aber z.B. nötig, Template Funktionen in der H Datei zu definieren. Darf man in C++ jetzt auch normale Funktionen (bei denen der Typ fix ist) in der H definieren, oder sollen die weiterhin in der CPP Datei definiert werden?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2214911</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2214911</guid><dc:creator><![CDATA[aufteilungsfrage]]></dc:creator><pubDate>Thu, 24 May 2012 13:30:45 GMT</pubDate></item><item><title><![CDATA[Reply to Aufteilung CPP&#x2F;H in C++ nicht so streng wie in C? on Thu, 24 May 2012 13:38:47 GMT]]></title><description><![CDATA[<p>Das <em>darfst</em> du sowieso schon immer machen, in C wie in C++ auch. In C++ ist es bei Templates eben notwendig. Du musst eben wissen, was du tust<sup>*</sup>. Insbesondere musst du die Schlüsselwörter beherrschen, die die Linkage oder allgemeiner das Verhalten des Linkers beeinflussen (static, inline, template und andere die ich vergessen habe) und auch wissen, wann diese Schlüsselwörter versteckt benutzt werden (z.B. inline bei Memberfunktionen). Falls du nicht genau weißt, was du tust, wird es später Linkerfehler hageln.</p>
<p><sup>*</sup>: Es ist in der Programmierung allgemein eine sehr gute Idee, immer genau zu wissen, was man warum und wie tut.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2214913</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2214913</guid><dc:creator><![CDATA[SeppJ]]></dc:creator><pubDate>Thu, 24 May 2012 13:38:47 GMT</pubDate></item><item><title><![CDATA[Reply to Aufteilung CPP&#x2F;H in C++ nicht so streng wie in C? on Thu, 24 May 2012 13:46:10 GMT]]></title><description><![CDATA[<p>Nagut, dann mal so: wie ist die übliche Vorgehensweise?<br />
Template Funktionen in die H und normale Funktionen in die CPP?</p>
<p>Ich möchte ja nicht, dass mein Programm unnötig aufgebläht wird wenn dann meine Funktion zig mal im Code eingebaut wird nur weil ich sie in der H drinnen habe!</p>
<p>P.S.: Linker Fehler bekomm ich so und anders keinen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2214919</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2214919</guid><dc:creator><![CDATA[aufteilungsfrage]]></dc:creator><pubDate>Thu, 24 May 2012 13:46:10 GMT</pubDate></item><item><title><![CDATA[Reply to Aufteilung CPP&#x2F;H in C++ nicht so streng wie in C? on Thu, 24 May 2012 13:57:18 GMT]]></title><description><![CDATA[<p>aufteilungsfrage schrieb:</p>
<blockquote>
<p>Nagut, dann mal so: wie ist die übliche Vorgehensweise?<br />
Template Funktionen in die H und normale Funktionen in die CPP?</p>
</blockquote>
<p>Ist eine gute Faustregel und niemals falsch. Sehr kurze Funktionen eventuell inline in den Header, das macht es dem Compiler leichter, den Code zu optimieren.<br />
Manchmal schreibt man die Templatedefinitionen auch in eine Extradatei und macht dann ein entsprechendes Include im Header. Das hält diesen schön übersichtlich.</p>
<blockquote>
<p>P.S.: Linker Fehler bekomm ich so und anders keinen.</p>
</blockquote>
<p>Dann hast du Glück, weil du nur ein sehr einfaches Programm geschrieben hast.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2214925</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2214925</guid><dc:creator><![CDATA[SeppJ]]></dc:creator><pubDate>Thu, 24 May 2012 13:57:18 GMT</pubDate></item><item><title><![CDATA[Reply to Aufteilung CPP&#x2F;H in C++ nicht so streng wie in C? on Thu, 24 May 2012 13:59:54 GMT]]></title><description><![CDATA[<p>ok, danke SeppJ!</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2214928</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2214928</guid><dc:creator><![CDATA[aufteilungsfrage]]></dc:creator><pubDate>Thu, 24 May 2012 13:59:54 GMT</pubDate></item><item><title><![CDATA[Reply to Aufteilung CPP&#x2F;H in C++ nicht so streng wie in C? on Thu, 24 May 2012 14:13:05 GMT]]></title><description><![CDATA[<p>Zur Erklärung: Es handelt sich nicht um Template-Funktionen, sondern um Funktionstemplates bzw. Funktionsvorlagen. Der Compiler muss die gesamte Vorlage kennen, um zur Compilezeit Funktionen daraus zu stanzen, und deshalb schreibt man in aller Regel ihre gesamte Definition in den Header.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2214938</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2214938</guid><dc:creator><![CDATA[seldon]]></dc:creator><pubDate>Thu, 24 May 2012 14:13:05 GMT</pubDate></item></channel></rss>