<?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 binären, globalen Operatoren.]]></title><description><![CDATA[<p>Hi erst mal. Ich benitze die Autoren-Version von VC++ 6.0 und hab folgendes Problem: Wenn ich einen globalen, binären Operator habe, dann kann ich ihn nicht als friend einer Klasse deklarieren. Bei mir geht dieses Beispiel nicht:</p>
<pre><code class="language-cpp">#include &lt;iostream&gt;
using namespace std;

class DayTime
{
private:
    int hour;

public:
    friend void operator &lt; (DayTime&amp;, DayTime&amp;);
};

void operator &lt; (DayTime&amp; a, DayTime&amp; b)
{
    a.hour = 10;
}

int main()
{
    return 0;
}
</code></pre>
<p>Bei anderen Leuten geht es jedoch zu compilieren <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f615.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--confused_face"
      title=":confused:"
      alt="😕"
    /></p>
<p>Der Compiler meldet:</p>
<blockquote>
<p>&quot;hour&quot; : Kein Zugriff auf private Element, dessen Deklaration in der Klasse &quot;DayTime&quot; erfolgte.</p>
</blockquote>
<p>Ich hab schon den Hinweis bekommen, mir das Service-Pack 6.0 für VC++ zu saugen, aber das ist gut 60 MB groß! Gibts eventuell eine Alternative schreibweise, mit der mein Compiler das verstehen könnte?</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/79559/problem-mit-binären-globalen-operatoren</link><generator>RSS for Node</generator><lastBuildDate>Sun, 19 Apr 2026 02:03:38 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/79559.rss" rel="self" type="application/rss+xml"/><pubDate>Mon, 12 Jul 2004 14:58:55 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Problem mit binären, globalen Operatoren. on Mon, 12 Jul 2004 14:58:55 GMT]]></title><description><![CDATA[<p>Hi erst mal. Ich benitze die Autoren-Version von VC++ 6.0 und hab folgendes Problem: Wenn ich einen globalen, binären Operator habe, dann kann ich ihn nicht als friend einer Klasse deklarieren. Bei mir geht dieses Beispiel nicht:</p>
<pre><code class="language-cpp">#include &lt;iostream&gt;
using namespace std;

class DayTime
{
private:
    int hour;

public:
    friend void operator &lt; (DayTime&amp;, DayTime&amp;);
};

void operator &lt; (DayTime&amp; a, DayTime&amp; b)
{
    a.hour = 10;
}

int main()
{
    return 0;
}
</code></pre>
<p>Bei anderen Leuten geht es jedoch zu compilieren <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f615.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--confused_face"
      title=":confused:"
      alt="😕"
    /></p>
<p>Der Compiler meldet:</p>
<blockquote>
<p>&quot;hour&quot; : Kein Zugriff auf private Element, dessen Deklaration in der Klasse &quot;DayTime&quot; erfolgte.</p>
</blockquote>
<p>Ich hab schon den Hinweis bekommen, mir das Service-Pack 6.0 für VC++ zu saugen, aber das ist gut 60 MB groß! Gibts eventuell eine Alternative schreibweise, mit der mein Compiler das verstehen könnte?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/558980</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/558980</guid><dc:creator><![CDATA[Sir Gossi]]></dc:creator><pubDate>Mon, 12 Jul 2004 14:58:55 GMT</pubDate></item><item><title><![CDATA[Reply to Problem mit binären, globalen Operatoren. on Mon, 12 Jul 2004 15:07:05 GMT]]></title><description><![CDATA[<p>IIRC hilft es, auf die using-Direktive zu verzichten, oder sie zumindest hinter die Definition des Operators zu schreiben. Trotzdem empfehle ich dringend das SP.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/558985</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/558985</guid><dc:creator><![CDATA[MFK]]></dc:creator><pubDate>Mon, 12 Jul 2004 15:07:05 GMT</pubDate></item><item><title><![CDATA[Reply to Problem mit binären, globalen Operatoren. on Mon, 12 Jul 2004 15:12:32 GMT]]></title><description><![CDATA[<p>Auf using zu verzichten hilft tatsächlich, aber ist ja keine wirkliche Lösung. Dann müsste ich ja bei jedem Funktionsaufruf std:: davor schreiben. Außerdem weiß man nie, ob nicht schon woanders using benutzt wurde.</p>
<p>Kann man eventuell den Compiler von der Konsole aus starten oder die Fehlersuch-Stärke herbsetzen, damit der quelltext trotzdem compiliert wird?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/558992</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/558992</guid><dc:creator><![CDATA[Sir Gossi]]></dc:creator><pubDate>Mon, 12 Jul 2004 15:12:32 GMT</pubDate></item><item><title><![CDATA[Reply to Problem mit binären, globalen Operatoren. on Mon, 12 Jul 2004 15:19:46 GMT]]></title><description><![CDATA[<p>Es gibt wohl einen Einzel-Fix für diesen Bug:<br />
<a href="http://support.microsoft.com/default.aspx?scid=http://support.microsoft.com:80/support/kb/articles/q192/5/39.asp&amp;NoWebContent=1" rel="nofollow">http://support.microsoft.com/default.aspx?scid=http://support.microsoft.com:80/support/kb/articles/q192/5/39.asp&amp;NoWebContent=1</a></p>
]]></description><link>https://www.c-plusplus.net/forum/post/558996</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/558996</guid><dc:creator><![CDATA[MFK]]></dc:creator><pubDate>Mon, 12 Jul 2004 15:19:46 GMT</pubDate></item><item><title><![CDATA[Reply to Problem mit binären, globalen Operatoren. on Mon, 12 Jul 2004 15:45:12 GMT]]></title><description><![CDATA[<p>Ja, das scheint genau mein Problem zu sein. Aber eine Lösung ist da nicht gegeben, nur ein Verweis auf die Hotline-Telefonnummern. Wenigstens sind da Tips gegeben, mit denen ich um den Bug herumprogrammieren kann. Das ist besser als garnichts. Also vielen Dank, die Seite hätt ich nie gefunden.</p>
<p>Aber wie gefragt: Kann man den VC++ Compiler von der Konsole aus starten und/oder würde das etwas ändern?</p>
<p>Edit: Ich seh grad, da steht, dass mit dem sp3 der bug behoben wurde. aber außer sp5 und 6 find ich keine älteren service packs mehr. weiß jemand, wo ich die herbekomme?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/559002</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/559002</guid><dc:creator><![CDATA[Sir Gossi]]></dc:creator><pubDate>Mon, 12 Jul 2004 15:45:12 GMT</pubDate></item><item><title><![CDATA[Reply to Problem mit binären, globalen Operatoren. on Mon, 12 Jul 2004 18:40:30 GMT]]></title><description><![CDATA[<p>Ok, ich habe das Problem mit einer anderen Schreibweise beseitigt. Und weil wir in einem Forum voneinander lernen, schreibe ich meine Lösung auf:</p>
<p>Bevor ich in der Klasse den Operator als Friend deklariere, deklariere ich einen Prototyp von ihm VOR der Klasse. Und weil ich in diesem Prototyp bereits die Klasse als Argument verwende, deklariere ich DAVOR einen Prototyp der Klasse, also so:</p>
<pre><code class="language-cpp">#include &lt;iostream&gt;
using namespace std;

class DayTime;  // Mit diesen beiden Zeilen geht es.
void operator &lt; (DayTime&amp;, DayTime&amp;);

class DayTime
{
private:
	int hour;

public:
	friend void operator &lt; (DayTime&amp;, DayTime&amp;);
};

void operator &lt; (DayTime&amp; a, DayTime&amp; b)
{
	a.hour = 10;
}

int main()
{
	return 0;
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/559113</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/559113</guid><dc:creator><![CDATA[Sir Gossi]]></dc:creator><pubDate>Mon, 12 Jul 2004 18:40:30 GMT</pubDate></item></channel></rss>