<?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[Klassenfunktionen immer inline?]]></title><description><![CDATA[<p>Hallo,<br />
habe hier leider nur ein arg altes C++ Buch.<br />
Dort steht beschrieben, daß man in einer Klasse<br />
nur sehr kleine Funktionen inline definieren soll.<br />
Große Funktionen sollten stehts außerhalb der<br />
Klasse mit dem :: Operator definiert werden.<br />
Bsp.:</p>
<pre><code>class Test
{
 public:
  Test()      // Construktor
  {
   vara=0;
  }

  void kleinefn()       // kleine fn() inline
  {
   //sehr kleine Funktion
  }

  void grossefn();    // prototyp der grossen fn() innerhalb der Klasse

 protected:
 int vara;
}

void Test::grossefn()  // grosse fn() außerhalb der Klasse definiert
{
 //große Funktion
}
</code></pre>
<p>Nun meine Frage.<br />
In wie fern ist es noch relevant dies zu tun?<br />
Machen die modernen Compiler das nicht eh automatisch?<br />
Oder ist es aus Performancegründen wichtig,<br />
große Klassenfunktionen nicht inline zu definieren.</p>
<p>Gruß,<br />
DC</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/128375/klassenfunktionen-immer-inline</link><generator>RSS for Node</generator><lastBuildDate>Tue, 25 Aug 2026 16:17:23 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/128375.rss" rel="self" type="application/rss+xml"/><pubDate>Sat, 03 Dec 2005 07:27:02 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Klassenfunktionen immer inline? on Sat, 03 Dec 2005 07:27:02 GMT]]></title><description><![CDATA[<p>Hallo,<br />
habe hier leider nur ein arg altes C++ Buch.<br />
Dort steht beschrieben, daß man in einer Klasse<br />
nur sehr kleine Funktionen inline definieren soll.<br />
Große Funktionen sollten stehts außerhalb der<br />
Klasse mit dem :: Operator definiert werden.<br />
Bsp.:</p>
<pre><code>class Test
{
 public:
  Test()      // Construktor
  {
   vara=0;
  }

  void kleinefn()       // kleine fn() inline
  {
   //sehr kleine Funktion
  }

  void grossefn();    // prototyp der grossen fn() innerhalb der Klasse

 protected:
 int vara;
}

void Test::grossefn()  // grosse fn() außerhalb der Klasse definiert
{
 //große Funktion
}
</code></pre>
<p>Nun meine Frage.<br />
In wie fern ist es noch relevant dies zu tun?<br />
Machen die modernen Compiler das nicht eh automatisch?<br />
Oder ist es aus Performancegründen wichtig,<br />
große Klassenfunktionen nicht inline zu definieren.</p>
<p>Gruß,<br />
DC</p>
]]></description><link>https://www.c-plusplus.net/forum/post/932850</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/932850</guid><dc:creator><![CDATA[Don Carsto]]></dc:creator><pubDate>Sat, 03 Dec 2005 07:27:02 GMT</pubDate></item><item><title><![CDATA[Reply to Klassenfunktionen immer inline? on Sat, 03 Dec 2005 08:25:23 GMT]]></title><description><![CDATA[<p>also das mit den inline funktionen ist (übrigens auch bei c) ungefähr folgendermassen:<br />
wenn ich eine funktion x() inline definiere, dann wird im resultierenden binary keine funktion x() angelegt, sondern der code der funktion x() überall dort eingefügt, wo sie aufgerufen wird. wenn ich also eine kleine funktion habe, die nur ein paar mal aufgerufen wird, bracuht sie inline weniger platz als wenn ich sie nicht inline definiere. andersrum wenn ich eine riesige funktion inline definiere, wird diese riesige funktion jedes mal eingefügt anstatt einfach nur ein aufruf... das ganze schlägt sich auch irgendwie auf die performance nieder aber wie das zusammenhängt, weiss ich nich</p>
<p>mal abgesehen davon sind große funktionen, die inline in der klassendeklaration stehen, ziemlich unübersichtlich</p>
<p>ich hoffe ich hab jetzt hier kein stuss gelabert, is schon länger her dass ich das gelesen hab (und dazu noch inner msdn!)</p>
<p>mfg</p>
]]></description><link>https://www.c-plusplus.net/forum/post/932853</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/932853</guid><dc:creator><![CDATA[fallen]]></dc:creator><pubDate>Sat, 03 Dec 2005 08:25:23 GMT</pubDate></item><item><title><![CDATA[Reply to Klassenfunktionen immer inline? on Sat, 03 Dec 2005 09:16:25 GMT]]></title><description><![CDATA[<p><a class="plugin-mentions-user plugin-mentions-a" href="https://www.c-plusplus.net/forum/uid/4496">@fallen</a>: inline ist nur eine Empfehlung an den Compiler.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/932865</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/932865</guid><dc:creator><![CDATA[:d]]></dc:creator><pubDate>Sat, 03 Dec 2005 09:16:25 GMT</pubDate></item><item><title><![CDATA[Reply to Klassenfunktionen immer inline? on Sat, 03 Dec 2005 10:15:05 GMT]]></title><description><![CDATA[<p>:d schrieb:</p>
<blockquote>
<p><a class="plugin-mentions-user plugin-mentions-a" href="https://www.c-plusplus.net/forum/uid/4496">@fallen</a>: inline ist nur eine Empfehlung an den Compiler.</p>
</blockquote>
<p>Gilt dies auch für &quot;impliziertes&quot; inline, also wenn die Definition in der Klassendeklaration steht?<br />
Bei einem explizitem ist es mir klar.</p>
<p>//edit: Rechtschreibung</p>
]]></description><link>https://www.c-plusplus.net/forum/post/932903</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/932903</guid><dc:creator><![CDATA[shapeless]]></dc:creator><pubDate>Sat, 03 Dec 2005 10:15:05 GMT</pubDate></item><item><title><![CDATA[Reply to Klassenfunktionen immer inline? on Sat, 03 Dec 2005 10:29:08 GMT]]></title><description><![CDATA[<p>Ja das gilt immer. Manche Compiler erzeugen zb niemals inline code wenn eine for schleife vorhanden ist.<br />
Kurt</p>
]]></description><link>https://www.c-plusplus.net/forum/post/932912</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/932912</guid><dc:creator><![CDATA[ZuK]]></dc:creator><pubDate>Sat, 03 Dec 2005 10:29:08 GMT</pubDate></item><item><title><![CDATA[Reply to Klassenfunktionen immer inline? on Sat, 03 Dec 2005 10:29:45 GMT]]></title><description><![CDATA[<p>Afaik ja - wäre auch eher kontraproduktiv, wenn der Compiler <strong>jede</strong> als inline deklarierte Funktion auch inline expandieren <strong>müsste</strong>.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/932914</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/932914</guid><dc:creator><![CDATA[CStoll]]></dc:creator><pubDate>Sat, 03 Dec 2005 10:29:45 GMT</pubDate></item><item><title><![CDATA[Reply to Klassenfunktionen immer inline? on Sat, 03 Dec 2005 12:25:04 GMT]]></title><description><![CDATA[<p>Also verstehe ich das nun richtig, daß der Compiler<br />
eh selbst entscheidet wie er die Funktionen ablegt und<br />
ich mir darüber selbst keine Gedanken mehr machen muß?<br />
Denn, ab wann ist denn eine Funktion zu groß für Inline?</p>
<p>Gruß,<br />
DC</p>
]]></description><link>https://www.c-plusplus.net/forum/post/933010</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/933010</guid><dc:creator><![CDATA[Don Carsto]]></dc:creator><pubDate>Sat, 03 Dec 2005 12:25:04 GMT</pubDate></item><item><title><![CDATA[Reply to Klassenfunktionen immer inline? on Sat, 03 Dec 2005 12:38:02 GMT]]></title><description><![CDATA[<p>Don Carsto schrieb:</p>
<blockquote>
<p>Also verstehe ich das nun richtig, daß der Compiler<br />
eh selbst entscheidet wie er die Funktionen ablegt und<br />
ich mir darüber selbst keine Gedanken mehr machen muß?</p>
</blockquote>
<p>Richtig erkannt - allerdings könnte es sein, daß &quot;inline&quot; deklarierte Funktionen eher dafür ausgewählt werden (oder daß eine Funktion je nach Position inline UND normal verwendet werden kann).</p>
<blockquote>
<p>Denn, ab wann ist denn eine Funktion zu groß für Inline?</p>
</blockquote>
<p>Das ist die Entscheidung des Compilers - in der Regel ist der Grenzbereich erreicht, wenn der Code für die Stack-Bereitstellung und den Funktionsaufruf umfangreicher wird als die eigentliche Funktion.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/933017</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/933017</guid><dc:creator><![CDATA[CStoll]]></dc:creator><pubDate>Sat, 03 Dec 2005 12:38:02 GMT</pubDate></item><item><title><![CDATA[Reply to Klassenfunktionen immer inline? on Sat, 03 Dec 2005 13:41:00 GMT]]></title><description><![CDATA[<p>Alles klar, nun weiß ich Bescheid..<br />
Danke!!</p>
]]></description><link>https://www.c-plusplus.net/forum/post/933087</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/933087</guid><dc:creator><![CDATA[Don Carsto]]></dc:creator><pubDate>Sat, 03 Dec 2005 13:41:00 GMT</pubDate></item></channel></rss>