<?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[Globales Sortieren, Definition Bool Operator]]></title><description><![CDATA[<p>Hi,<br />
ich möchte in 2 verschiedenen Funktionen, bzw. in zwei verschiedenen .cpp's einen Vektor sortieren lassen.</p>
<p>Dafür füge ich in die xyz.cpp folgendes ein:</p>
<pre><code>bool operator &lt;(const one_feature&amp; left, const one_feature&amp; right)
{
  if  (left.value &gt; right.value) return true;
  return false;
}
</code></pre>
<p>und benutze dann anschließend:</p>
<pre><code>sort ( iXYFeatSymm-&gt;xy_list.begin(), iXYFeatSymm-&gt;xy_list.end() );
</code></pre>
<p>es funktioniert wunderbar.</p>
<p>Jetzt ist eine neue Funktion dazugekommen, abc.cpp</p>
<p>Wenn ich nun wieder folgendes einfüge:</p>
<pre><code>bool operator &lt;(const one_feature&amp; left, const one_feature&amp; right)
{
  if  (left.value &gt; right.value) return true;
  return false;
}
</code></pre>
<p>um auch hier einen Vektor mit sort.... zu sortieren. Erhalte ich eine Fehlermeldung beim Kompilieren:</p>
<pre><code>1&gt;LINK : c:\test\\SYMMBApplication.exe not found or not built by the last incremental link; performing full link
1&gt;abc.obj : error LNK2005: &quot;bool __cdecl operator&lt;(struct one_feature const &amp;,struct one_feature const &amp;)&quot; (??M@YA_NABUone_feature@@0@Z) already defined in xyz.obj
1&gt;c:\test\\SYMMApplication.exe : fatal error LNK1169: one or more multiply defined symbols found
</code></pre>
<p>Sortieren klappt &quot;alleine&quot; jeweils in beiden. Nur nicht in beiden gleichzeitig.</p>
<p>Ich vermute dass ich:</p>
<pre><code>bool operator &lt;(const one_feature&amp; left, const one_feature&amp; right)
{
  if  (left.value &gt; right.value) return true;
  return false;
}
</code></pre>
<p>irgendwie global definieren muss, um in beiden Fkt. zu sortieren?</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/264803/globales-sortieren-definition-bool-operator</link><generator>RSS for Node</generator><lastBuildDate>Fri, 04 Sep 2026 14:30:19 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/264803.rss" rel="self" type="application/rss+xml"/><pubDate>Tue, 13 Apr 2010 08:58:35 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Globales Sortieren, Definition Bool Operator on Tue, 13 Apr 2010 08:58:35 GMT]]></title><description><![CDATA[<p>Hi,<br />
ich möchte in 2 verschiedenen Funktionen, bzw. in zwei verschiedenen .cpp's einen Vektor sortieren lassen.</p>
<p>Dafür füge ich in die xyz.cpp folgendes ein:</p>
<pre><code>bool operator &lt;(const one_feature&amp; left, const one_feature&amp; right)
{
  if  (left.value &gt; right.value) return true;
  return false;
}
</code></pre>
<p>und benutze dann anschließend:</p>
<pre><code>sort ( iXYFeatSymm-&gt;xy_list.begin(), iXYFeatSymm-&gt;xy_list.end() );
</code></pre>
<p>es funktioniert wunderbar.</p>
<p>Jetzt ist eine neue Funktion dazugekommen, abc.cpp</p>
<p>Wenn ich nun wieder folgendes einfüge:</p>
<pre><code>bool operator &lt;(const one_feature&amp; left, const one_feature&amp; right)
{
  if  (left.value &gt; right.value) return true;
  return false;
}
</code></pre>
<p>um auch hier einen Vektor mit sort.... zu sortieren. Erhalte ich eine Fehlermeldung beim Kompilieren:</p>
<pre><code>1&gt;LINK : c:\test\\SYMMBApplication.exe not found or not built by the last incremental link; performing full link
1&gt;abc.obj : error LNK2005: &quot;bool __cdecl operator&lt;(struct one_feature const &amp;,struct one_feature const &amp;)&quot; (??M@YA_NABUone_feature@@0@Z) already defined in xyz.obj
1&gt;c:\test\\SYMMApplication.exe : fatal error LNK1169: one or more multiply defined symbols found
</code></pre>
<p>Sortieren klappt &quot;alleine&quot; jeweils in beiden. Nur nicht in beiden gleichzeitig.</p>
<p>Ich vermute dass ich:</p>
<pre><code>bool operator &lt;(const one_feature&amp; left, const one_feature&amp; right)
{
  if  (left.value &gt; right.value) return true;
  return false;
}
</code></pre>
<p>irgendwie global definieren muss, um in beiden Fkt. zu sortieren?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1881988</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1881988</guid><dc:creator><![CDATA[froob]]></dc:creator><pubDate>Tue, 13 Apr 2010 08:58:35 GMT</pubDate></item><item><title><![CDATA[Reply to Globales Sortieren, Definition Bool Operator on Tue, 13 Apr 2010 09:07:28 GMT]]></title><description><![CDATA[<p>froob schrieb:</p>
<blockquote>
<p>Ich vermute dass ich:</p>
<pre><code>bool operator &lt;(const one_feature&amp; left, const one_feature&amp; right)
{
  if  (left.value &gt; right.value) return true;
  return false;
}
</code></pre>
<p>irgendwie global definieren muss, um in beiden Fkt. zu sortieren?</p>
</blockquote>
<p>Nein, du musst (besser gesagt: darfst) den Operator nur genau einmal definieren. D.h. du darfst nciht in zwei oder mehr Übersetzungseinheiten die selbe Funktion definieren. Du darfst sie allerdings mehrfa deklarieren, dazu sind header da.</p>
<p>Zum Unterschied Definition/Deklaration siehe FAQ, und schau dir am Besten mal im Buch deiner Wahl den Abschnitt zum Thema &quot;mehrere Übersetzungseinheiten&quot; an (oder &quot;Aufteilung von Sourcecode&quot; oder soetwas).</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1881994</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1881994</guid><dc:creator><![CDATA[pumuckl]]></dc:creator><pubDate>Tue, 13 Apr 2010 09:07:28 GMT</pubDate></item><item><title><![CDATA[Reply to Globales Sortieren, Definition Bool Operator on Tue, 13 Apr 2010 09:25:05 GMT]]></title><description><![CDATA[<p>Ok. habe mich mal schlau gelesen und folgendes durchgeführt:</p>
<blockquote>
<p>bool operator &lt; (const one_feature&amp; left, const one_feature&amp; right);</p>
</blockquote>
<p>in die entsprechende .h eingefügt, nun erhalte ich keine Fehlermeldung mehr und in beiden Fkt. wird wunderbar sortiert.</p>
<p>Vielen Dank!!</p>
<p>PS: Ich sitze schon seit 2 Stunden an dem Problem und habe schon zig Sachen probiert, aber bin nicht auf deine Idee gekommen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1882004</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1882004</guid><dc:creator><![CDATA[froob]]></dc:creator><pubDate>Tue, 13 Apr 2010 09:25:05 GMT</pubDate></item><item><title><![CDATA[Reply to Globales Sortieren, Definition Bool Operator on Tue, 13 Apr 2010 10:32:15 GMT]]></title><description><![CDATA[<p>Man kann auch einfach unterschiedliche Vergleichsfunktionen definieren und sie der sort-Funktion als Parameter mitgeben.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1882044</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1882044</guid><dc:creator><![CDATA[knivil]]></dc:creator><pubDate>Tue, 13 Apr 2010 10:32:15 GMT</pubDate></item><item><title><![CDATA[Reply to Globales Sortieren, Definition Bool Operator on Tue, 13 Apr 2010 11:32:54 GMT]]></title><description><![CDATA[<p>BTW, dein Operator sagt folgendes: &quot;Wenn left.value <strong>größer</strong> ist als right.value, dann ist left <strong>kleiner</strong> als right.&quot; Das ist bestenfalls unintuitiv und wird die Anwender (und dich später auch) nur verwirren...</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1882077</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1882077</guid><dc:creator><![CDATA[pumuckl]]></dc:creator><pubDate>Tue, 13 Apr 2010 11:32:54 GMT</pubDate></item></channel></rss>