<?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[Erstellen von Klassen]]></title><description><![CDATA[<p>Hallo Forum,</p>
<p>ich bin zwar der Meinung das prinzipielle Konzept von Klassen verstanden zu haben aber dennoch stoße ich des öfteren auf Source Codes die viele Dinge anders handhaben.</p>
<p>Normaler Weise wenn ich eine Klasse baue setze ich das ganze ja wie folgt zusammen:</p>
<p>Die Header Datei</p>
<pre><code class="language-cpp">class test
{
public:
  test();
  ~test();
  int irgendwas(int vari);
};
</code></pre>
<p>und die cpp File</p>
<pre><code class="language-cpp">#include &quot;test.h&quot;

test::test()
{
  // irgendwas
}

test::~test()
{
  // irgendwas
}

int test::irgendwas(int vari)
{
  // eigentliche Programmlogik.
}
</code></pre>
<p>Jetzt habe ich aber schon des öfteren gesehen das es scheinbar auch möglich ist in der Headerdatei schon festzulegen was die Funktionen erledigen also schon den eigentlich Code in die Funktionen in die Header Datei packen und keine cpp File für die Klasse anzulegen.</p>
<p>Warum ist sowas möglich oder hab ich da einfach was falsch verstanden? Damit ihr vieleicht besser versteht was ich meine:</p>
<pre><code class="language-cpp">class test
{
public:
  int meinevar;
  test();
  ~test();

 int irgendwas(int vari)
 {
   meinevar=555;
   // und weitere 
 }
};
</code></pre>
<p>Wäre super wenn mich da jemand aufklären könnte.</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/196641/erstellen-von-klassen</link><generator>RSS for Node</generator><lastBuildDate>Wed, 30 Sep 2026 14:15:31 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/196641.rss" rel="self" type="application/rss+xml"/><pubDate>Thu, 01 Nov 2007 08:40:48 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Erstellen von Klassen on Thu, 01 Nov 2007 08:40:48 GMT]]></title><description><![CDATA[<p>Hallo Forum,</p>
<p>ich bin zwar der Meinung das prinzipielle Konzept von Klassen verstanden zu haben aber dennoch stoße ich des öfteren auf Source Codes die viele Dinge anders handhaben.</p>
<p>Normaler Weise wenn ich eine Klasse baue setze ich das ganze ja wie folgt zusammen:</p>
<p>Die Header Datei</p>
<pre><code class="language-cpp">class test
{
public:
  test();
  ~test();
  int irgendwas(int vari);
};
</code></pre>
<p>und die cpp File</p>
<pre><code class="language-cpp">#include &quot;test.h&quot;

test::test()
{
  // irgendwas
}

test::~test()
{
  // irgendwas
}

int test::irgendwas(int vari)
{
  // eigentliche Programmlogik.
}
</code></pre>
<p>Jetzt habe ich aber schon des öfteren gesehen das es scheinbar auch möglich ist in der Headerdatei schon festzulegen was die Funktionen erledigen also schon den eigentlich Code in die Funktionen in die Header Datei packen und keine cpp File für die Klasse anzulegen.</p>
<p>Warum ist sowas möglich oder hab ich da einfach was falsch verstanden? Damit ihr vieleicht besser versteht was ich meine:</p>
<pre><code class="language-cpp">class test
{
public:
  int meinevar;
  test();
  ~test();

 int irgendwas(int vari)
 {
   meinevar=555;
   // und weitere 
 }
};
</code></pre>
<p>Wäre super wenn mich da jemand aufklären könnte.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1395732</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1395732</guid><dc:creator><![CDATA[Jenso]]></dc:creator><pubDate>Thu, 01 Nov 2007 08:40:48 GMT</pubDate></item><item><title><![CDATA[Reply to Erstellen von Klassen on Thu, 01 Nov 2007 08:54:56 GMT]]></title><description><![CDATA[<p>z.b. inlining<br />
<a href="http://www.c-plusplus.net/forum/viewtopic-var-t-is-105893-and-start-is-0-and-postdays-is-0-and-postorder-is-asc-and-highlight-is-.html" rel="nofollow">http://www.c-plusplus.net/forum/viewtopic-var-t-is-105893-and-start-is-0-and-postdays-is-0-and-postorder-is-asc-and-highlight-is-.html</a></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1395736</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1395736</guid><dc:creator><![CDATA[mehlpferd]]></dc:creator><pubDate>Thu, 01 Nov 2007 08:54:56 GMT</pubDate></item><item><title><![CDATA[Reply to Erstellen von Klassen on Thu, 01 Nov 2007 08:55:23 GMT]]></title><description><![CDATA[<p>Jenso schrieb:</p>
<blockquote>
<p>...Warum ist sowas möglich oder hab ich da einfach was falsch verstanden?...</p>
<p>Wäre super wenn mich da jemand aufklären könnte.</p>
</blockquote>
<p>Du hast nichts falsch verstanden, nur gibt es halt zwei Varianten (in der Regel ist die von dir gewählte die &quot;saubere&quot;). Prinzipiell könnte man alles in Headerdateien schreiben, und auf die cpp verzichten.</p>
<p>Grundsätzlich gibt es für beide Varianten Gründe (letztere Form sollte man aber eher selten anwenden). Dazu ein paar kurze Informationen (genaueres liefert dir Fachliteratur, z.B. die &quot;effektiv&quot;-Reihe von Scott Meyers):</p>
<p>a) Um den Linkaufwand zu reduzieren ist es immer sinnvoller includes in der Sourcedatei unterzubringen und mit Vorwärtsdeklarationen zu arbeiten.<br />
b) Grundsätzlich sollte man immer gegen die Schnittstelle (Header) programmieren, niemals gegen die Implementationsdetails (Source). Eine Trennung unterstützt diese Herangehensweise.<br />
c) Für Bibliotheken muss in der Regel die Schnittstelle bekannt gemacht werden. Nur möchtest du den internen Aufbau der Bibliothek allen Anwendern zeigen? (sprich: dir deinen eigenen Lebensunterhalt entziehen? ;p)<br />
d) Nötig sind Headerimplementierungen vorwiegend bei Templates (das Thema solltest du wenn ich deinen Wissensstand richtig einschätze aber eher nur am Rande kennen gelernt haben, daher verzichte ich dies hier näher zu erläutern).</p>
<p>cu André</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1395737</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1395737</guid><dc:creator><![CDATA[asc]]></dc:creator><pubDate>Thu, 01 Nov 2007 08:55:23 GMT</pubDate></item><item><title><![CDATA[Reply to Erstellen von Klassen on Thu, 01 Nov 2007 09:04:39 GMT]]></title><description><![CDATA[<p>Klasse! Vielen Dank für die ausführliche Antwort, alles beantwortet.</p>
<p>Dann kann ich auch endlich wieder ruhig schlafen! <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f603.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--grinning_face_with_big_eyes"
      title=":D"
      alt="😃"
    /></p>
<p>Gruß Jenso</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1395740</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1395740</guid><dc:creator><![CDATA[Jenso]]></dc:creator><pubDate>Thu, 01 Nov 2007 09:04:39 GMT</pubDate></item></channel></rss>