<?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[&amp;lt;&amp;lt; Überladen]]></title><description><![CDATA[<p>Hallo ich hab da mel eine frage<br />
ich hab eine Klasse die eine Logdatei erstellen soll<br />
nun möchte ich denn &lt;&lt; operator überladen<br />
es soll möglich sein mehere konstruktionen zu bilden wie</p>
<p>Log&lt;&lt;&quot;ZEICHENKETTE&quot;;<br />
Log&lt;&lt;&quot;ZEICHENKETTE&quot;&lt;&lt;[Variable (String/char-Array];<br />
usw</p>
<p>jetz wollt ich fragen wie ich die Opperatoren überladen muss (also welch pearamter usw)<br />
die erste Möglichkeit hab ich versucht mit templets reallisieren, wobei dies nicht funktionirt hat.<br />
es kamm folgender linker fehler</p>
<blockquote>
<p>1&gt;Main.obj : error LNK2019: Verweis auf nicht aufgelöstes externes Symbol &quot;&quot;public: void __thiscall LogData::operator&lt;&lt;&lt;char const *&gt;(char const *)&quot; (??$?6PBD@LogData@@QAEXPBD@Z)&quot; in Funktion &quot;_main&quot;.</p>
</blockquote>
<p>Log.h</p>
<pre><code class="language-cpp">class LogData
		 {

		 public:
			 template&lt;class T&gt; 
			 void operator&lt;&lt;(T);

		 };
</code></pre>
<p>Log.cpp</p>
<pre><code class="language-cpp">#include &quot;Log.h&quot;
#include &quot;iostream&quot;

template &lt;class T&gt;
inline void LogData::operator&lt;&lt;(T Ausgabe)
{
	std::cout&lt;&lt;Ausgabe; 
}
</code></pre>
<p>Main.cpp</p>
<pre><code class="language-cpp">#include &quot;Log.h&quot;
int main()
{
	LogData DATA;
	DATA&lt;&lt;&quot;HALLO&quot;;
	return 0; 
}
</code></pre>
<p>schon mal danke</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/229054/lt-lt-überladen</link><generator>RSS for Node</generator><lastBuildDate>Mon, 28 Sep 2026 04:33:16 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/229054.rss" rel="self" type="application/rss+xml"/><pubDate>Sat, 06 Dec 2008 19:05:25 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to &amp;lt;&amp;lt; Überladen on Sat, 06 Dec 2008 19:05:25 GMT]]></title><description><![CDATA[<p>Hallo ich hab da mel eine frage<br />
ich hab eine Klasse die eine Logdatei erstellen soll<br />
nun möchte ich denn &lt;&lt; operator überladen<br />
es soll möglich sein mehere konstruktionen zu bilden wie</p>
<p>Log&lt;&lt;&quot;ZEICHENKETTE&quot;;<br />
Log&lt;&lt;&quot;ZEICHENKETTE&quot;&lt;&lt;[Variable (String/char-Array];<br />
usw</p>
<p>jetz wollt ich fragen wie ich die Opperatoren überladen muss (also welch pearamter usw)<br />
die erste Möglichkeit hab ich versucht mit templets reallisieren, wobei dies nicht funktionirt hat.<br />
es kamm folgender linker fehler</p>
<blockquote>
<p>1&gt;Main.obj : error LNK2019: Verweis auf nicht aufgelöstes externes Symbol &quot;&quot;public: void __thiscall LogData::operator&lt;&lt;&lt;char const *&gt;(char const *)&quot; (??$?6PBD@LogData@@QAEXPBD@Z)&quot; in Funktion &quot;_main&quot;.</p>
</blockquote>
<p>Log.h</p>
<pre><code class="language-cpp">class LogData
		 {

		 public:
			 template&lt;class T&gt; 
			 void operator&lt;&lt;(T);

		 };
</code></pre>
<p>Log.cpp</p>
<pre><code class="language-cpp">#include &quot;Log.h&quot;
#include &quot;iostream&quot;

template &lt;class T&gt;
inline void LogData::operator&lt;&lt;(T Ausgabe)
{
	std::cout&lt;&lt;Ausgabe; 
}
</code></pre>
<p>Main.cpp</p>
<pre><code class="language-cpp">#include &quot;Log.h&quot;
int main()
{
	LogData DATA;
	DATA&lt;&lt;&quot;HALLO&quot;;
	return 0; 
}
</code></pre>
<p>schon mal danke</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1626257</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1626257</guid><dc:creator><![CDATA[OperatorÜberladen]]></dc:creator><pubDate>Sat, 06 Dec 2008 19:05:25 GMT</pubDate></item><item><title><![CDATA[Reply to &amp;lt;&amp;lt; Überladen on Sat, 06 Dec 2008 19:20:45 GMT]]></title><description><![CDATA[<p>wenn ich dei log.h wie so schreibe</p>
<pre><code class="language-cpp">#include &quot;iostream&quot;	
class LogData
		 {

		 public:
			 template&lt;class T&gt; 
			 void operator&lt;&lt;(T Ausgabe)
				{
					std::cout&lt;&lt;Ausgabe; 
				}

		 };
</code></pre>
<p>funktioniert es aber warum</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1626261</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1626261</guid><dc:creator><![CDATA[OperatorÜberladen]]></dc:creator><pubDate>Sat, 06 Dec 2008 19:20:45 GMT</pubDate></item><item><title><![CDATA[Reply to &amp;lt;&amp;lt; Überladen on Sat, 06 Dec 2008 19:48:12 GMT]]></title><description><![CDATA[<p>Ein extrem häufiges Problem. Da könntest du nur eine Suchmaschine nehmen, sogar unsere blöde Forensuche, und das folgende eintippen: template LNK2019<br />
Schon stösst du auf diesen immer wieder gemachten Anfängerfehler. Wir haben dazu sogar etwas in der FAQ stehen:<br />
<a href="http://www.c-plusplus.net/forum/viewtopic-var-t-is-39467.html" rel="nofollow">http://www.c-plusplus.net/forum/viewtopic-var-t-is-39467.html</a></p>
<p>Grüssli</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1626279</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1626279</guid><dc:creator><![CDATA[Dravere]]></dc:creator><pubDate>Sat, 06 Dec 2008 19:48:12 GMT</pubDate></item><item><title><![CDATA[Reply to &amp;lt;&amp;lt; Überladen on Sat, 06 Dec 2008 20:20:39 GMT]]></title><description><![CDATA[<p>danke für deine antwort<br />
mir geht es abre eher um die erste varieante<br />
wie kann ich diese umsetzen (mit meheren &lt;&lt; operatoren so wie in der standart bibliothek von iostream) wie muss ich dafür die operatoren überladen</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1626282</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1626282</guid><dc:creator><![CDATA[OperatorÜberladen]]></dc:creator><pubDate>Sat, 06 Dec 2008 20:20:39 GMT</pubDate></item><item><title><![CDATA[Reply to &amp;lt;&amp;lt; Überladen on Sun, 07 Dec 2008 00:28:11 GMT]]></title><description><![CDATA[<p>In der Standardbibliothek ist das mit Funktionsüberladung gelöst. Das hat zudem den Vorteil, dass es nicht für alle Typen, sondern nur für diejenigen, für die eine Überladung bereitsteht, funktioniert.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1626351</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1626351</guid><dc:creator><![CDATA[Nexus]]></dc:creator><pubDate>Sun, 07 Dec 2008 00:28:11 GMT</pubDate></item><item><title><![CDATA[Reply to &amp;lt;&amp;lt; Überladen on Sun, 07 Dec 2008 01:27:55 GMT]]></title><description><![CDATA[<p>OperatorÜberladen schrieb:</p>
<blockquote>
<p>wie muss ich dafür die operatoren überladen</p>
</blockquote>
<p>Du <strong>musst</strong> es zwar nicht so machen,aber üblicherweise wird für jeden Typ, den du ausgeben willst eine Funktion definiert:</p>
<pre><code class="language-cpp">class foo {
...
int x;
std::string whatever;
...
public:
friend std::ostream &amp; operator &lt;&lt; ( std::ostream &amp; os , const foo &amp; rhs );
};

std::ostream&amp; operator &lt;&lt; ( std::ostream &amp; os , const foo &amp; rhs )
{
 os &lt;&lt; rhs.x &lt;&lt; &quot; &quot; &lt;&lt; rhs.whatever;
 return os;
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1626355</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1626355</guid><dc:creator><![CDATA[drakon]]></dc:creator><pubDate>Sun, 07 Dec 2008 01:27:55 GMT</pubDate></item><item><title><![CDATA[Reply to &amp;lt;&amp;lt; Überladen on Sun, 07 Dec 2008 13:10:13 GMT]]></title><description><![CDATA[<p>danke für deine antwort aber in diesem fall müsste das esrst objekt ja ein ostream objekt sein wass es in meinem fall nicht sein soll bzw soll das zweite objekt nicht die klasse sein</p>
<p>das erste objekt soll die klass sein die später als singleton implementiert wird<br />
das zweit uns soll entweder sein string oder char-array objekt dastellen<br />
also ungefähr so</p>
<p>LOGKLASSE&lt;&lt;STRINGOBJEKT&lt;&lt;CHAR-ARRAY&lt;&lt;&quot;LITERALKONST&quot;&lt;&lt;std::endl;</p>
<p>das sollte möglich sein wär nett wenn mir da jemand einen ansatz geben könnte</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1626494</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1626494</guid><dc:creator><![CDATA[OperatorÜberladen]]></dc:creator><pubDate>Sun, 07 Dec 2008 13:10:13 GMT</pubDate></item><item><title><![CDATA[Reply to &amp;lt;&amp;lt; Überladen on Sun, 07 Dec 2008 13:49:30 GMT]]></title><description><![CDATA[<p>In der Klasse machst du es dann so:</p>
<pre><code class="language-cpp">MyClass&amp; MyClass::operator&lt;&lt; (const MyObject&amp; Var)
{
    // ...
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1626502</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1626502</guid><dc:creator><![CDATA[Nexus]]></dc:creator><pubDate>Sun, 07 Dec 2008 13:49:30 GMT</pubDate></item><item><title><![CDATA[Reply to &amp;lt;&amp;lt; Überladen on Sun, 07 Dec 2008 18:26:04 GMT]]></title><description><![CDATA[<p>danke<br />
funktioniert soweit auch ganz gut hab nur noch das problem das es ich std::endl nicht hinbekomme</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1626604</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1626604</guid><dc:creator><![CDATA[OperatorÜberladen]]></dc:creator><pubDate>Sun, 07 Dec 2008 18:26:04 GMT</pubDate></item><item><title><![CDATA[Reply to &amp;lt;&amp;lt; Überladen on Sun, 07 Dec 2008 19:12:34 GMT]]></title><description><![CDATA[<p>OperatorÜberladen schrieb:</p>
<blockquote>
<p>funktioniert soweit auch ganz gut hab nur noch das problem das es ich std::endl nicht hinbekomme</p>
</blockquote>
<p><code>std::endl</code> ist eine Funktion, die auch als Argument von <code>operator&lt;&lt;</code> dienen kann. Schau dir doch mal <a href="http://www.cplusplus.com/reference/iostream/manipulators/endl.html" rel="nofollow">das</a> genauer an.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1626645</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1626645</guid><dc:creator><![CDATA[Nexus]]></dc:creator><pubDate>Sun, 07 Dec 2008 19:12:34 GMT</pubDate></item><item><title><![CDATA[Reply to &amp;lt;&amp;lt; Überladen on Sun, 07 Dec 2008 21:31:28 GMT]]></title><description><![CDATA[<p>ich hab mir das jetz mal in ruhe angesehen aber werd daraus net schlauer entweder liegt es daran das ich übermüdet bin oder ein verständnis problem meinerseits bei diesem problem</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1626693</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1626693</guid><dc:creator><![CDATA[OperatorÜberladen]]></dc:creator><pubDate>Sun, 07 Dec 2008 21:31:28 GMT</pubDate></item><item><title><![CDATA[Reply to &amp;lt;&amp;lt; Überladen on Sun, 07 Dec 2008 22:22:41 GMT]]></title><description><![CDATA[<p>Dann versuchst du es halt morgen nochmals. <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f609.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--winking_face"
      title=";)"
      alt="😉"
    /></p>
<p>Du kannst auch gerne konkret fragen, wenn du etwas nicht verstehst.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1626722</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1626722</guid><dc:creator><![CDATA[Nexus]]></dc:creator><pubDate>Sun, 07 Dec 2008 22:22:41 GMT</pubDate></item><item><title><![CDATA[Reply to &amp;lt;&amp;lt; Überladen on Mon, 08 Dec 2008 16:48:11 GMT]]></title><description><![CDATA[<p>ich komm irgendwie nicht drauf könntest du mir vll einen weiteren ansatz dafür geben?<br />
wäre nett von dier</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1627112</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1627112</guid><dc:creator><![CDATA[OperatorÜberladen]]></dc:creator><pubDate>Mon, 08 Dec 2008 16:48:11 GMT</pubDate></item><item><title><![CDATA[Reply to &amp;lt;&amp;lt; Überladen on Mon, 08 Dec 2008 16:50:49 GMT]]></title><description><![CDATA[<p>aktuell hab ich</p>
<pre><code class="language-cpp">template&lt;class T&gt; 
	 LogData&amp; operator&lt;&lt;(const T&amp; Write)
	{
			std::cout&lt;&lt;Write; 
			return *this;
	 }
</code></pre>
<p>als basis wie müsste ich das templat und die funktion für das std::endl spezalisieren wäre für jeden kleienen weiteren ansaz dankbar</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1627116</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1627116</guid><dc:creator><![CDATA[OperatorÜberladen]]></dc:creator><pubDate>Mon, 08 Dec 2008 16:50:49 GMT</pubDate></item><item><title><![CDATA[Reply to &amp;lt;&amp;lt; Überladen on Mon, 08 Dec 2008 20:06:09 GMT]]></title><description><![CDATA[<p>Eben nicht als Template, sondern als überladene Funktion.</p>
<p>Schau dir mal Funktionszeiger an. Dann kannst du den Funktionszeiger mit der Signatur von <code>std::endl;</code> als Parametertyp von deinem <code>operator&lt;&lt;</code> verwenden.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1627239</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1627239</guid><dc:creator><![CDATA[Nexus]]></dc:creator><pubDate>Mon, 08 Dec 2008 20:06:09 GMT</pubDate></item><item><title><![CDATA[Reply to &amp;lt;&amp;lt; Überladen on Mon, 08 Dec 2008 20:41:25 GMT]]></title><description><![CDATA[<p>dann müsste meine funktion so in der art aussehen</p>
<p>LogData&amp; operator&lt;&lt;(const SIGNATUR* endl())<br />
{<br />
std::cout&lt;&lt;std::endl;<br />
return *this;<br />
}<br />
hab ich das richtig verstanden welche signatur muss ich nehemen?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1627259</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1627259</guid><dc:creator><![CDATA[OperatorÜberladen]]></dc:creator><pubDate>Mon, 08 Dec 2008 20:41:25 GMT</pubDate></item><item><title><![CDATA[Reply to &amp;lt;&amp;lt; Überladen on Mon, 08 Dec 2008 20:52:18 GMT]]></title><description><![CDATA[<p>Sorry, ich glaube, ich hab dich falsch verstanden.</p>
<p>Geht es dir nur darum, alle Eingaben an <code>std::cout</code> weiterzuleiten? Dann ist ein Template das einfachste.</p>
<pre><code class="language-cpp">template &lt;typename T&gt;
std::ostream&amp; operator&lt;&lt; (T&amp; Object)
{
	return std::cout &lt;&lt; Object;
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1627269</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1627269</guid><dc:creator><![CDATA[Nexus]]></dc:creator><pubDate>Mon, 08 Dec 2008 20:52:18 GMT</pubDate></item><item><title><![CDATA[Reply to &amp;lt;&amp;lt; Überladen on Mon, 08 Dec 2008 21:01:04 GMT]]></title><description><![CDATA[<p>nicht wirklich ich hab eine klasse die als singletone implementiert ist (ist aber nur nebensache)</p>
<p>diese klasse kann bisher dashier entgegen nehmen<br />
LogData::getInstanz()&lt;&lt;Hallo&lt;&lt;&quot; wie gehts&quot;&lt;&lt;&quot; was machst du &quot;;<br />
nun soll noch die implementierung von std::endl erfolgen das dies auch möglich ist<br />
LogData::getInstanz()&lt;&lt;Hallo&lt;&lt;&quot; wie gehts&quot;&lt;&lt;&quot; was machst du &quot;&lt;&lt;std::endl,<br />
implementierung des bisherigen &lt;&lt; operator steht weiter oben</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1627279</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1627279</guid><dc:creator><![CDATA[OperatorÜberladen]]></dc:creator><pubDate>Mon, 08 Dec 2008 21:01:04 GMT</pubDate></item><item><title><![CDATA[Reply to &amp;lt;&amp;lt; Überladen on Mon, 08 Dec 2008 21:28:33 GMT]]></title><description><![CDATA[<p>Okay, dann wäre es wohl doch eher meine erste Version. <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f642.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--slightly_smiling_face"
      title=":)"
      alt="🙂"
    /></p>
<p>Ich geb dir jetzt mal den Code für die Deklaration, aber ich empfehle dir, ihn zu verstehen versuchen. Über Funktionszeiger findest du <a href="http://www.newty.de/fpt/fpt.html" rel="nofollow">hier</a> eine gute Seite.</p>
<pre><code class="language-cpp">LogData&amp; operator&lt;&lt; (std::ostream&amp; (*Object)(std::ostream&amp;));
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1627306</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1627306</guid><dc:creator><![CDATA[Nexus]]></dc:creator><pubDate>Mon, 08 Dec 2008 21:28:33 GMT</pubDate></item><item><title><![CDATA[Reply to &amp;lt;&amp;lt; Überladen on Mon, 08 Dec 2008 21:42:36 GMT]]></title><description><![CDATA[<p>verstehen tu ich ihn ^^<br />
mir war nur nicht der rückgabe wert so wie der parameter des funktionszeigers bekannt aber vielen vielen danke</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1627314</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1627314</guid><dc:creator><![CDATA[OperatorÜberladen]]></dc:creator><pubDate>Mon, 08 Dec 2008 21:42:36 GMT</pubDate></item></channel></rss>