<?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[Copy-Construktor und =Operator]]></title><description><![CDATA[<p>Hallo Comunity!</p>
<p>Mein Code:</p>
<pre><code class="language-cpp">#include &quot;complex.h&quot;
#include &lt;iostream&gt; 

Complex::Complex(double real_, double imag_)
	:real(real_)
	,imag(imag_)
	{}

double Complex::get_real() const{

	return real;
}

double Complex::get_imag() const{

	return imag;
}

Complex&amp; Complex::operator=(const Complex&amp; a){

	if (this != &amp;a){								//Und hier stimmt auch was nicht??

		this-&gt;real=a.get_real();
		this-&gt;imag=a.get_imag();

		return *this;	
	}
}

std::ostream&amp; operator&lt;&lt;(std::ostream&amp; out, const Complex&amp; a){

	out&lt;&lt;&quot;Realanteil: &quot;&lt;&lt;a.get_real()&lt;&lt;std::endl;
	out&lt;&lt;&quot;Imaginaerteil: &quot;&lt;&lt;a.get_imag()&lt;&lt;std::endl;
}

Complex::Complex(const Complex&amp; a){//Was muss da rein?}
</code></pre>
<p>Hab schon ettliches probiert, aber ich komm auf keinen grünen Zweig!<br />
Was muss im Zuweisungsoperator rein, und was im C-Ctor?</p>
<p>Danke im Voraus</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/301996/copy-construktor-und-operator</link><generator>RSS for Node</generator><lastBuildDate>Tue, 11 Aug 2026 15:23:08 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/301996.rss" rel="self" type="application/rss+xml"/><pubDate>Mon, 09 Apr 2012 09:09:50 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Copy-Construktor und =Operator on Mon, 09 Apr 2012 09:09:50 GMT]]></title><description><![CDATA[<p>Hallo Comunity!</p>
<p>Mein Code:</p>
<pre><code class="language-cpp">#include &quot;complex.h&quot;
#include &lt;iostream&gt; 

Complex::Complex(double real_, double imag_)
	:real(real_)
	,imag(imag_)
	{}

double Complex::get_real() const{

	return real;
}

double Complex::get_imag() const{

	return imag;
}

Complex&amp; Complex::operator=(const Complex&amp; a){

	if (this != &amp;a){								//Und hier stimmt auch was nicht??

		this-&gt;real=a.get_real();
		this-&gt;imag=a.get_imag();

		return *this;	
	}
}

std::ostream&amp; operator&lt;&lt;(std::ostream&amp; out, const Complex&amp; a){

	out&lt;&lt;&quot;Realanteil: &quot;&lt;&lt;a.get_real()&lt;&lt;std::endl;
	out&lt;&lt;&quot;Imaginaerteil: &quot;&lt;&lt;a.get_imag()&lt;&lt;std::endl;
}

Complex::Complex(const Complex&amp; a){//Was muss da rein?}
</code></pre>
<p>Hab schon ettliches probiert, aber ich komm auf keinen grünen Zweig!<br />
Was muss im Zuweisungsoperator rein, und was im C-Ctor?</p>
<p>Danke im Voraus</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2200089</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2200089</guid><dc:creator><![CDATA[Zagatho_zero87]]></dc:creator><pubDate>Mon, 09 Apr 2012 09:09:50 GMT</pubDate></item><item><title><![CDATA[Reply to Copy-Construktor und =Operator on Mon, 09 Apr 2012 09:25:54 GMT]]></title><description><![CDATA[<pre><code class="language-cpp">Complex Complex::operator=( const Complex&amp; a )
{

    if( this != &amp;a )
{
        this-&gt;real= a.real;
        this-&gt;imag = a.imag;

        return *this;   
    }
return *this;
}
</code></pre>
<p>So sollte eig. gehen.</p>
<p>MfG</p>
<p>Edit: In deinem Falle hätte der K-Konstruktor nicht das selbe der das = ? Aber hier bin ich mir nicht sicher. Wenn ich was falsches gesagt habe, entschuldige ich mich jetz schonmal <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f61b.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--face_with_tongue"
      title=":P"
      alt="😛"
    /></p>
<pre><code class="language-cpp">Complex::Complex(const Complex&amp; a)
{
this-&gt;real = a.real;
this-&gt;imag = a.imag;
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/2200090</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2200090</guid><dc:creator><![CDATA[yihaaa]]></dc:creator><pubDate>Mon, 09 Apr 2012 09:25:54 GMT</pubDate></item><item><title><![CDATA[Reply to Copy-Construktor und =Operator on Mon, 09 Apr 2012 09:31:06 GMT]]></title><description><![CDATA[<p>Genau das selbe hab ich schon probiert.<br />
Doch bei mir kommen immer ergebnisse wie: 1.24344e+345 heraus.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2200094</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2200094</guid><dc:creator><![CDATA[Zagatho_zero87]]></dc:creator><pubDate>Mon, 09 Apr 2012 09:31:06 GMT</pubDate></item><item><title><![CDATA[Reply to Copy-Construktor und =Operator on Mon, 09 Apr 2012 09:53:38 GMT]]></title><description><![CDATA[<p>Gib mal ein vollstaendiges Beispiel, dass den Fehler produziert.</p>
<p>Auf jeden Fall brauchst du hier weder Kopierkonstruktor noch Zuweisungsaoperator selber zu schreiben, da real und imag trivial kopierbar sind und daher die automatisch erzeugten Zuweisungsoperator, Kopierkonstruktor und Destruktor ihren Zweck perfekt erfuellen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2200098</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2200098</guid><dc:creator><![CDATA[SeppJ]]></dc:creator><pubDate>Mon, 09 Apr 2012 09:53:38 GMT</pubDate></item><item><title><![CDATA[Reply to Copy-Construktor und =Operator on Mon, 09 Apr 2012 10:02:30 GMT]]></title><description><![CDATA[<pre><code class="language-cpp">Complex my_Complex_1(11.2, 1.2345);
Complex my_Complex_3(my_Complex_1);
std::cout&lt;&lt;my_Complex_3&lt;&lt;std::endl;
</code></pre>
<p>Das Ergebnis ist unbrauchbar:</p>
<p>Realanteil: 9.98919e-306<br />
Imaginäranteil: 4.134e+234</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2200102</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2200102</guid><dc:creator><![CDATA[Zagatho_zero87]]></dc:creator><pubDate>Mon, 09 Apr 2012 10:02:30 GMT</pubDate></item><item><title><![CDATA[Reply to Copy-Construktor und =Operator on Mon, 09 Apr 2012 10:10:35 GMT]]></title><description><![CDATA[<p>Du hast SeppJ nicht verstanden. Wir wollen eine <code>main</code> sehen, wir wollen eine Definition aller Konstrukte sehen, die du in der <code>main</code> benutzt.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2200103</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2200103</guid><dc:creator><![CDATA[[[global:guest]]]]></dc:creator><pubDate>Mon, 09 Apr 2012 10:10:35 GMT</pubDate></item><item><title><![CDATA[Reply to Copy-Construktor und =Operator on Mon, 09 Apr 2012 10:15:27 GMT]]></title><description><![CDATA[<p>Ok</p>
<p>main:</p>
<pre><code class="language-cpp">#include &lt;cstdlib&gt;
#include &lt;iostream&gt;
#include &quot;complex.h&quot;

// Funktionsprototypen /////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////
Complex operator+(const Complex&amp;, const Complex&amp;);
Complex operator-(const Complex&amp;, const Complex&amp;);
Complex operator*(const Complex&amp;, const Complex&amp;);
Complex operator/(const Complex&amp;, const Complex&amp;);
bool loop_control();

int main(int argc, char *argv[])
{
	Complex my_Complex_1(11.2, 1.2345);
	Complex my_Complex_2(1.1, 2.2);
	std::cout&lt;&lt;my_Complex_2&lt;&lt;std::endl;
	my_Complex_2=my_Complex_1;
	std::cout&lt;&lt;my_Complex_2&lt;&lt;std::endl;
	Complex my_Complex_3(my_Complex_1);
	std::cout&lt;&lt;my_Complex_3&lt;&lt;std::endl;
	system(&quot;Pause&quot;);
	return 0;

}

// Funktionsdefinitionen ///////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////
Complex operator+(const Complex&amp; a, const Complex&amp; b){

	Complex Complex_temp(a.get_real()+b.get_real(), a.get_imag()+b.get_imag());

	return Complex_temp;
}

Complex operator-(const Complex&amp; a, const Complex&amp; b){

	Complex Complex_temp(a.get_real()-b.get_real(), a.get_imag()-b.get_imag());

	return Complex_temp;
}

Complex operator*(const Complex&amp; a, const Complex&amp; b){

	Complex Complex_temp(a.get_real()*b.get_real(), a.get_imag()*b.get_imag());

	return Complex_temp;
}

Complex operator/(const Complex&amp; a, const Complex&amp; b){

	Complex Complex_temp(a.get_real()/b.get_real(), a.get_imag()/b.get_imag());

	return Complex_temp;
}
</code></pre>
<p>Klasse:</p>
<pre><code class="language-cpp">class Complex{

		double real;
		double imag;

	public:

		Complex(double real_, double imag_);
		double get_real() const;
		double get_imag() const;
		Complex&amp; operator=(const Complex&amp;);
		friend std::ostream&amp; operator&lt;&lt;(std::ostream&amp;, const Complex&amp;);
		Complex(const Complex&amp; a);

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

Complex::Complex(double real_, double imag_)
	:real(real_)
	,imag(imag_)
	{}

double Complex::get_real() const{

	return real;
}

double Complex::get_imag() const{

	return imag;
}

Complex&amp; Complex::operator=(const Complex&amp; a){

	if (this != &amp;a){								//Und hier stimmt auch was nicht??

		this-&gt;real=a.get_real();
		this-&gt;imag=a.get_imag();

		return *this;	
	}
	return *this;
}

std::ostream&amp; operator&lt;&lt;(std::ostream&amp; out, const Complex&amp; a){

	out&lt;&lt;&quot;Realanteil: &quot;&lt;&lt;a.get_real()&lt;&lt;std::endl;
	out&lt;&lt;&quot;Imaginaerteil: &quot;&lt;&lt;a.get_imag()&lt;&lt;std::endl;
}

Complex::Complex(const Complex&amp; a){}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/2200107</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2200107</guid><dc:creator><![CDATA[Zagatho_zero87]]></dc:creator><pubDate>Mon, 09 Apr 2012 10:15:27 GMT</pubDate></item><item><title><![CDATA[Reply to Copy-Construktor und =Operator on Mon, 09 Apr 2012 10:19:16 GMT]]></title><description><![CDATA[<p>Dein Kopierkonstruktor ist leer. Ist doch klar, dass da nichts funktionierendes rauskommen wird. Ein moeglicher Kopierkonstruktor wurde dir schon genannt. Ausserdem wurdest du schon darauf hingewiesen, dass du sowohl den Zuweisungsoperator als auch den Kopierkonstruktor hier gar nicht brauchst. Lass die Deklaration und die Definition beider einfach weg.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2200109</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2200109</guid><dc:creator><![CDATA[SeppJ]]></dc:creator><pubDate>Mon, 09 Apr 2012 10:19:16 GMT</pubDate></item><item><title><![CDATA[Reply to Copy-Construktor und =Operator on Mon, 09 Apr 2012 10:21:53 GMT]]></title><description><![CDATA[<p>Super jetzt funktionierts! <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="🙂"
    /><br />
Danke <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f44d.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--thumbs_up"
      title=":+1:"
      alt="👍"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/2200111</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2200111</guid><dc:creator><![CDATA[Zagatho_zero87]]></dc:creator><pubDate>Mon, 09 Apr 2012 10:21:53 GMT</pubDate></item></channel></rss>