<?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[Problem mit als &amp;quot;inline&amp;quot; deklarierten Methoden bzw. Funktionen]]></title><description><![CDATA[<p>Ich habe eine Klasse &quot;Vec3&quot;, die in einer Klasse &quot;Matrix&quot; verwendet wird. Der Code ist nicht meiner, ist aus meiner Sicht aber völlig konform:<br />
1. Deklaration:</p>
<pre><code class="language-cpp">inline Vec3 operator - (const Vec3 &amp;V);
</code></pre>
<p>2. Definition:</p>
<pre><code class="language-cpp">inline Vec3 operator - (const Vec3 &amp;V)
{
	Vec3 Result;
	Result.x = -V.x;
	Result.y = -V.y;
	Result.z = -V.z;
	return Result;
}
</code></pre>
<p>Das Kompilieren der Matrix-Klasse schlägt fehl:</p>
<blockquote>
<p>[C++ Fehler] Matrix.cpp(555): E2451 Undefiniertes Symbol 'operator -(const Vec3 &amp;)'</p>
</blockquote>
<p>(#include &quot;Vector.h&quot; ist natürlich gegeben)</p>
<p>Wenn ich das inline-Schlüsselwort entferne, ist alles in Butter. Dasselbe Phänomen übrigens auch bei diversen anderen Funktionen.</p>
<p>Fehlt in meinem C++-Handbuch eine Seite, oder ist das eine Besonderheit vom Borland C++ Builder (BDS2006)? Meines Wissens müsste der Kompiler die inline-Direktive(n) (die vor der Definition reicht eigentlich) einfach ignorieren, wenn ihm die Geschichte zu umständlich wird.</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/151899/problem-mit-als-quot-inline-quot-deklarierten-methoden-bzw-funktionen</link><generator>RSS for Node</generator><lastBuildDate>Sun, 09 Aug 2026 00:31:04 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/151899.rss" rel="self" type="application/rss+xml"/><pubDate>Fri, 30 Jun 2006 13:42:46 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Problem mit als &amp;quot;inline&amp;quot; deklarierten Methoden bzw. Funktionen on Fri, 30 Jun 2006 13:42:46 GMT]]></title><description><![CDATA[<p>Ich habe eine Klasse &quot;Vec3&quot;, die in einer Klasse &quot;Matrix&quot; verwendet wird. Der Code ist nicht meiner, ist aus meiner Sicht aber völlig konform:<br />
1. Deklaration:</p>
<pre><code class="language-cpp">inline Vec3 operator - (const Vec3 &amp;V);
</code></pre>
<p>2. Definition:</p>
<pre><code class="language-cpp">inline Vec3 operator - (const Vec3 &amp;V)
{
	Vec3 Result;
	Result.x = -V.x;
	Result.y = -V.y;
	Result.z = -V.z;
	return Result;
}
</code></pre>
<p>Das Kompilieren der Matrix-Klasse schlägt fehl:</p>
<blockquote>
<p>[C++ Fehler] Matrix.cpp(555): E2451 Undefiniertes Symbol 'operator -(const Vec3 &amp;)'</p>
</blockquote>
<p>(#include &quot;Vector.h&quot; ist natürlich gegeben)</p>
<p>Wenn ich das inline-Schlüsselwort entferne, ist alles in Butter. Dasselbe Phänomen übrigens auch bei diversen anderen Funktionen.</p>
<p>Fehlt in meinem C++-Handbuch eine Seite, oder ist das eine Besonderheit vom Borland C++ Builder (BDS2006)? Meines Wissens müsste der Kompiler die inline-Direktive(n) (die vor der Definition reicht eigentlich) einfach ignorieren, wenn ihm die Geschichte zu umständlich wird.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1089130</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1089130</guid><dc:creator><![CDATA[Tilsiter]]></dc:creator><pubDate>Fri, 30 Jun 2006 13:42:46 GMT</pubDate></item><item><title><![CDATA[Reply to Problem mit als &amp;quot;inline&amp;quot; deklarierten Methoden bzw. Funktionen on Fri, 30 Jun 2006 14:23:30 GMT]]></title><description><![CDATA[<p>Das hat hier mit dem inline aber nichts zu tun. Hier scheint lediglich bei der Definition der Klassenbezeichner zu fehlen</p>
<pre><code class="language-cpp">inline Vec3 Vec3::operator - (const Vec3 &amp;V)
{
    Vec3 Result;
    Result.x = -V.x;
    Result.y = -V.y;
    Result.z = -V.z;
    return Result;
}
</code></pre>
<p>Ein Hinweis:<br />
Der Operator - (wie auch +, *, /) sollte besser global sein.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1089152</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1089152</guid><dc:creator><![CDATA[Braunstein]]></dc:creator><pubDate>Fri, 30 Jun 2006 14:23:30 GMT</pubDate></item><item><title><![CDATA[Reply to Problem mit als &amp;quot;inline&amp;quot; deklarierten Methoden bzw. Funktionen on Fri, 30 Jun 2006 19:34:40 GMT]]></title><description><![CDATA[<p>Braunstein schrieb:</p>
<blockquote>
<p>Das hat hier mit dem inline aber nichts zu tun. Hier scheint lediglich bei der Definition der Klassenbezeichner zu fehlen</p>
</blockquote>
<p>Wenn es der binäre Minusoperator wäre, hättest du völlig Recht. Ich habe ein verwirrendes Beispiel gewählt, sorry. Es handelt sich hier um das unäre Minus (also sozusagen das Minuszeichen im Sinne von &quot;-a + b&quot;), in einer globalen Funktion.</p>
<p>Der beschriebene Effekt tritt auch bei anderen Funktionen auf. Und wenn ich &quot;inline&quot; entferne, kompiliert es sich einwandfrei.</p>
<p>Der Autor hat übrigens fast alle Vektor- und Matrixfunktionen mit &quot;inline&quot; versehen, was ich sowieso für Unsinn halte. Aber trotzdem wurmt es mich massiv, wenn sich der BCB an diesem (aus meiner Sicht korrekten) C++ verschluckt.</p>
<p>Vielen Dank für den (nachvollziehbaren) Gedanken übrigens!</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1089269</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1089269</guid><dc:creator><![CDATA[Tilsiter]]></dc:creator><pubDate>Fri, 30 Jun 2006 19:34:40 GMT</pubDate></item><item><title><![CDATA[Reply to Problem mit als &amp;quot;inline&amp;quot; deklarierten Methoden bzw. Funktionen on Tue, 04 Jul 2006 06:09:32 GMT]]></title><description><![CDATA[<p>frag doch mal direkt im c++-forum ob der code so gültiges c++ ist. wenn ja dann kann es der bcb nicht. allerdings fände ich 2-mal inline zu viel.</p>
<p>besteht die vector-klasse aus einer header (h) und eine source-datei (cpp) oder ist das alles im header? ist in der cpp dann der header inkludiert? und in der matrix-klasse auch?</p>
<p>soweit ich weiss und mich erinnere dürfen inline-funktionen nur im header stehen (borland), sonst werden die nicht gefunden und dann kannste die deklaration weglassen. :schland:</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1090974</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1090974</guid><dc:creator><![CDATA[Sunday]]></dc:creator><pubDate>Tue, 04 Jul 2006 06:09:32 GMT</pubDate></item></channel></rss>