<?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[Operator = überladen]]></title><description><![CDATA[<p>hallo</p>
<p>ich will den Operator = überladen. Und das ungefähr so:</p>
<pre><code class="language-cpp">char a; 
}; 
 //Nicht-Member Funktionen fuer Ein- und Ausgabe 
ostream&amp; operator&lt;&lt;(ostream&amp;,astring); 

// Arithmetische Nicht-Member Funktionen 
astring operator =(astring);
</code></pre>
<p>das ist die main</p>
<pre><code class="language-cpp">C/C++ Code: 
astring str = &quot;Hallo&quot;;
</code></pre>
<p>und so ungefähr soll die methode aussehen</p>
<pre><code class="language-cpp">asting operator = (s) 
{ 
    struct buchstabenliste { 
    char buchstabe; 
    buchstabenliste *next;}; 

buchstabenliste *temp = new buchstabenliste;   
buchstabenliste *anfang=temp; 

for (int i=0;s[i]!='\0';i++) 
{ 
(*temp).buchstabe=s[i]; 
(*temp).next=new buchstabenliste; 

temp=temp-&gt;next; 
(*temp).buchstabe='#'; 
}
</code></pre>
<p>dann sagt er aber:<br />
error C2801: &quot;operator =&quot; muss ein nicht statischer Member sein.</p>
<p>was heißt das</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/184151/operator-überladen</link><generator>RSS for Node</generator><lastBuildDate>Wed, 23 Sep 2026 14:41:03 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/184151.rss" rel="self" type="application/rss+xml"/><pubDate>Tue, 12 Jun 2007 17:22:22 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Operator = überladen on Tue, 12 Jun 2007 17:22:22 GMT]]></title><description><![CDATA[<p>hallo</p>
<p>ich will den Operator = überladen. Und das ungefähr so:</p>
<pre><code class="language-cpp">char a; 
}; 
 //Nicht-Member Funktionen fuer Ein- und Ausgabe 
ostream&amp; operator&lt;&lt;(ostream&amp;,astring); 

// Arithmetische Nicht-Member Funktionen 
astring operator =(astring);
</code></pre>
<p>das ist die main</p>
<pre><code class="language-cpp">C/C++ Code: 
astring str = &quot;Hallo&quot;;
</code></pre>
<p>und so ungefähr soll die methode aussehen</p>
<pre><code class="language-cpp">asting operator = (s) 
{ 
    struct buchstabenliste { 
    char buchstabe; 
    buchstabenliste *next;}; 

buchstabenliste *temp = new buchstabenliste;   
buchstabenliste *anfang=temp; 

for (int i=0;s[i]!='\0';i++) 
{ 
(*temp).buchstabe=s[i]; 
(*temp).next=new buchstabenliste; 

temp=temp-&gt;next; 
(*temp).buchstabe='#'; 
}
</code></pre>
<p>dann sagt er aber:<br />
error C2801: &quot;operator =&quot; muss ein nicht statischer Member sein.</p>
<p>was heißt das</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1304299</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1304299</guid><dc:creator><![CDATA[physikus]]></dc:creator><pubDate>Tue, 12 Jun 2007 17:22:22 GMT</pubDate></item><item><title><![CDATA[Reply to Operator = überladen on Tue, 12 Jun 2007 17:34:47 GMT]]></title><description><![CDATA[<p>Erstmal sieht die Signatur vom operator= folgendermaßen aus:</p>
<pre><code class="language-cpp">astring&amp; operator=( const astring&amp; );
</code></pre>
<p>Dann gehört der natürlich <strong>in</strong> die Klasse und nicht zuletzt ruft die Zeile</p>
<pre><code class="language-cpp">astring str = &quot;Hallo&quot;;
</code></pre>
<p>nicht den operator= auf sondern einen entsprechenden Konstruktor. Wenn es keinen gibt, funktioniert das halt nicht.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1304314</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1304314</guid><dc:creator><![CDATA[David_pb]]></dc:creator><pubDate>Tue, 12 Jun 2007 17:34:47 GMT</pubDate></item><item><title><![CDATA[Reply to Operator = überladen on Tue, 12 Jun 2007 17:38:24 GMT]]></title><description><![CDATA[<p>und wie sollte der konstruktor aussehen?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1304315</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1304315</guid><dc:creator><![CDATA[physikus]]></dc:creator><pubDate>Tue, 12 Jun 2007 17:38:24 GMT</pubDate></item><item><title><![CDATA[Reply to Operator = überladen on Tue, 12 Jun 2007 17:39:30 GMT]]></title><description><![CDATA[<p>In deinem Fall wahrscheinlich so:</p>
<pre><code class="language-cpp">astring( const char* text )
{
  /* dein code */
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1304317</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1304317</guid><dc:creator><![CDATA[David_pb]]></dc:creator><pubDate>Tue, 12 Jun 2007 17:39:30 GMT</pubDate></item><item><title><![CDATA[Reply to Operator = überladen on Tue, 12 Jun 2007 17:41:44 GMT]]></title><description><![CDATA[<p>ich glaube das was ich überladen will muss eigentlich in den konstruktor???</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1304319</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1304319</guid><dc:creator><![CDATA[physikus]]></dc:creator><pubDate>Tue, 12 Jun 2007 17:41:44 GMT</pubDate></item><item><title><![CDATA[Reply to Operator = überladen on Tue, 12 Jun 2007 17:42:38 GMT]]></title><description><![CDATA[<p>ich will einen string aus der main in eine solche liste einlesen.</p>
<p>also muss diese liste in den konstruktor??? richtig???</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1304320</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1304320</guid><dc:creator><![CDATA[physikus]]></dc:creator><pubDate>Tue, 12 Jun 2007 17:42:38 GMT</pubDate></item><item><title><![CDATA[Reply to Operator = überladen on Tue, 12 Jun 2007 17:46:08 GMT]]></title><description><![CDATA[<pre><code class="language-cpp">class astring
{
public:
	astring( const astring&amp; rhs )
	{}

	astring( const char* text )
	{}

	astring&amp; operator=( const astring&amp; rhs )
	{
		return *this;
	}
};

int main()
{
	astring str = &quot;Hallo&quot;; // ruft astring::astring( const char* ) auf
	astring str1( str ); // ruft astring::astring( const astring&amp; ) auf
	str1 = str; // ruft astring::operator=( const astring&amp; ) auf

	std::cin.get();
}
</code></pre>
<p>Je nachdem was deine Klasse können soll benötigst du halt diverse Mittel.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1304325</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1304325</guid><dc:creator><![CDATA[David_pb]]></dc:creator><pubDate>Tue, 12 Jun 2007 17:46:08 GMT</pubDate></item><item><title><![CDATA[Reply to Operator = überladen on Tue, 12 Jun 2007 17:48:35 GMT]]></title><description><![CDATA[<pre><code class="language-cpp">class astring
{
    struct Item
    {
        char letter;
        Item* pNext;
        Item() : pNext(NULL), letter('#') {}
    } * m_pBegin;

public: 
    astring(const char* cpy)
    {
        m_pBegin = new Item;
        Item* pTmp = m_pBegin;
        for (std::size_t n = 0; std::strlen(cpy); ++n)
        {
            pTmp-&gt;letter = cpy[n];
            pTmp-&gt;pNext = new Item;
            pTmp = pTmp-&gt;pNext;
        }
    }
    ~astring()
    {
        Item* pTmp = m_pBegin;
        for (Item* pNext = pTmp-&gt;pNext; pNext; pTmp = pNext; pNext = pNext-&gt;pNext)
            delete pTmp;
    }
    std::size_t length() const
    {
        std::size_t len = 0;
        for (Item* pTmp = m_pBegin; pTmp; pTmp = pTmp-&gt;pNext) ++len;
        return len;
    }
};
</code></pre>
<p>... hab aber nicht kontrolliert ob es so stimmt!</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1304328</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1304328</guid><dc:creator><![CDATA[*D*Evil]]></dc:creator><pubDate>Tue, 12 Jun 2007 17:48:35 GMT</pubDate></item><item><title><![CDATA[Reply to Operator = überladen on Tue, 12 Jun 2007 17:58:40 GMT]]></title><description><![CDATA[<p>danke danke...<br />
so das einlesen in die liste funktioniert jetzt.<br />
jetzt will ich den string aber wieder ausgeben:</p>
<pre><code class="language-cpp">int main() {
 astring str = &quot;Hallo&quot;; 
 cout &lt;&lt; str &lt;&lt; endl;
</code></pre>
<p>dazu muss ich jetzt wieder &lt;&lt; überladen. in etwa so:</p>
<pre><code class="language-cpp">private: 

char a;
}; 
 //Nicht-Member Funktionen fuer Ein- und Ausgabe
ostream&amp; operator&lt;&lt;(ostream&amp;,astring);
</code></pre>
<p>und dann eine methode</p>
<pre><code class="language-cpp">ostream&amp; operator &lt;&lt; (ostream&amp; s, astring  astr) 
{ 
}
</code></pre>
<p>und in diese methode müsste ich dann wieder eine solche schleife einbauen die mir die buchstaben einzeln wieder ausgibt und mit</p>
<pre><code class="language-cpp">return s
</code></pre>
<p>zurück gibt.</p>
<p>liege ich da richtig????</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1304331</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1304331</guid><dc:creator><![CDATA[physikus]]></dc:creator><pubDate>Tue, 12 Jun 2007 17:58:40 GMT</pubDate></item><item><title><![CDATA[Reply to Operator = überladen on Tue, 12 Jun 2007 18:02:28 GMT]]></title><description><![CDATA[<pre><code class="language-cpp">std::ostream&amp; operator&lt;&lt;( std::ostream&amp; out, const astring&amp; deinstring )
{
  // ausgabe
  return out;
}
</code></pre>
<p>So, überladen und in einer Schleife die Buchstaben ausgeben, genau.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1304333</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1304333</guid><dc:creator><![CDATA[David_pb]]></dc:creator><pubDate>Tue, 12 Jun 2007 18:02:28 GMT</pubDate></item><item><title><![CDATA[Reply to Operator = überladen on Tue, 12 Jun 2007 18:06:59 GMT]]></title><description><![CDATA[<p>aber um jetzt die liste durchzublättern brauch ich doch den anfangszeiger.</p>
<p>Aber der icht doch nur in dieser einlese methode gültig, oder nicht?</p>
<p>wie kann ich den denn in die ausgabemethode mit übernehmen???</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1304337</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1304337</guid><dc:creator><![CDATA[physikus]]></dc:creator><pubDate>Tue, 12 Jun 2007 18:06:59 GMT</pubDate></item><item><title><![CDATA[Reply to Operator = überladen on Tue, 12 Jun 2007 18:42:49 GMT]]></title><description><![CDATA[<p>Hmm ... also den Code den ich dir gab halt den Anfangspunkt als Membervariable ... d.h. ist immer da solange das Objekt existiert.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1304363</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1304363</guid><dc:creator><![CDATA[*D*Evil]]></dc:creator><pubDate>Tue, 12 Jun 2007 18:42:49 GMT</pubDate></item><item><title><![CDATA[Reply to Operator = überladen on Tue, 12 Jun 2007 18:53:51 GMT]]></title><description><![CDATA[<p>bekomme aber immer folgenden fehler</p>
<p>error C2248: &quot;astring::buchstabenliste&quot;: Kein Zugriff auf private struct, dessen Deklaration in der astring-Klasse erfolgte.</p>
<p>&quot;astring::beginn&quot;: Kein Zugriff auf private Member, dessen Deklaration in der astring-Klasse erfolgte.</p>
<pre><code class="language-cpp">class astring 
{ 

	struct buchstabenliste {
		char buchstabe;
		buchstabenliste *next;}; 

		buchstabenliste *beginn;

public:

astring (const char* text );

private:
</code></pre>
<pre><code class="language-cpp">std::ostream&amp; operator&lt;&lt;( std::ostream&amp; s, const astring&amp; str ) 
{  
	astring::buchstabenliste *temp= str.beginn;

	return s &lt;&lt; 	(*temp).buchstabe;
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1304374</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1304374</guid><dc:creator><![CDATA[physikus]]></dc:creator><pubDate>Tue, 12 Jun 2007 18:53:51 GMT</pubDate></item><item><title><![CDATA[Reply to Operator = überladen on Tue, 12 Jun 2007 19:08:07 GMT]]></title><description><![CDATA[<p>öhm ja normal? du bist ja auch nicht mehr innerhalb der Klasse? Du kannst die Struct, so wie se deklariert ist, nur in der Klasse nutzen und auch das begin ist private.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1304383</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1304383</guid><dc:creator><![CDATA[*D*Evil]]></dc:creator><pubDate>Tue, 12 Jun 2007 19:08:07 GMT</pubDate></item><item><title><![CDATA[Reply to Operator = überladen on Tue, 12 Jun 2007 19:11:02 GMT]]></title><description><![CDATA[<p>versteh ich nicht..</p>
<p>ich bin doch noch in der klasse, oder nicht?</p>
<p>wo muss ich das denn deklarieren damit ich noch in der klasse bin</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1304385</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1304385</guid><dc:creator><![CDATA[physikus]]></dc:creator><pubDate>Tue, 12 Jun 2007 19:11:02 GMT</pubDate></item><item><title><![CDATA[Reply to Operator = überladen on Tue, 12 Jun 2007 20:20:18 GMT]]></title><description><![CDATA[<p>hmm</p>
<pre><code class="language-cpp">public:
    friend std::ostream &amp;  operator &lt;&lt; (std::ostream&amp;, const astring&amp;);
</code></pre>
<p>bei der Klasse hinzufügen ...</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1304427</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1304427</guid><dc:creator><![CDATA[*D*Evil]]></dc:creator><pubDate>Tue, 12 Jun 2007 20:20:18 GMT</pubDate></item><item><title><![CDATA[Reply to Operator = überladen on Tue, 12 Jun 2007 20:54:59 GMT]]></title><description><![CDATA[<p>das hab ich mitlerweile so gemacht.<br />
jetz sag ich in der methode:</p>
<pre><code class="language-cpp">ostream&amp; operator&lt;&lt;( ostream&amp; s, const astring&amp; str )//ausgeben 
{  
	return s &lt;&lt; str.beginn ;
</code></pre>
<p>dann kommt trotzdem immer noch folgendes</p>
<p>error C2248: &quot;astring::beginn&quot;: Kein Zugriff auf private Member, dessen Deklaration in der astring-Klasse erfolgte.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1304444</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1304444</guid><dc:creator><![CDATA[physikus]]></dc:creator><pubDate>Tue, 12 Jun 2007 20:54:59 GMT</pubDate></item></channel></rss>