<?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[Kopierkonstruktor mit Zeigern]]></title><description><![CDATA[<p>Warum geht das hier nicht:</p>
<pre><code class="language-cpp">#include &lt;iostream&gt;
#include &lt;algorithm&gt;
using namespace std;

class Event
{
    public:
    Event(int a_, int b_, int c_);
    Event(const Event &amp;rhs);
    ~Event();

    private:
    int *m_a;
    int *m_b;
    int *m_c;
};

Event::Event(int a_, int b_, int c_)
:m_a(new int(a_)),
 m_b(new int(b_)),
 m_c(new int(c_))
{

}

Event::Event(const Event &amp;rhs)
:m_a(new int(rhs.*m_a)), //&lt;-- !
 m_b(new int(rhs.*m_b)), //&lt;-- !
 m_c(new int(rhs.*m_c))  //&lt;-- !
{

}

Event::~Event()
{
    delete m_a;
    delete m_b;
    delete m_c;
}

int main()
{

    return 0;
}
</code></pre>
<p>Fehlt da eine &quot;( )&quot; um das &quot;*&quot; oder ka....was ich noch machen könnte.</p>
<p>MfG<br />
Stromberg</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/196791/kopierkonstruktor-mit-zeigern</link><generator>RSS for Node</generator><lastBuildDate>Wed, 30 Sep 2026 15:00:09 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/196791.rss" rel="self" type="application/rss+xml"/><pubDate>Fri, 02 Nov 2007 23:09:58 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Kopierkonstruktor mit Zeigern on Fri, 02 Nov 2007 23:09:58 GMT]]></title><description><![CDATA[<p>Warum geht das hier nicht:</p>
<pre><code class="language-cpp">#include &lt;iostream&gt;
#include &lt;algorithm&gt;
using namespace std;

class Event
{
    public:
    Event(int a_, int b_, int c_);
    Event(const Event &amp;rhs);
    ~Event();

    private:
    int *m_a;
    int *m_b;
    int *m_c;
};

Event::Event(int a_, int b_, int c_)
:m_a(new int(a_)),
 m_b(new int(b_)),
 m_c(new int(c_))
{

}

Event::Event(const Event &amp;rhs)
:m_a(new int(rhs.*m_a)), //&lt;-- !
 m_b(new int(rhs.*m_b)), //&lt;-- !
 m_c(new int(rhs.*m_c))  //&lt;-- !
{

}

Event::~Event()
{
    delete m_a;
    delete m_b;
    delete m_c;
}

int main()
{

    return 0;
}
</code></pre>
<p>Fehlt da eine &quot;( )&quot; um das &quot;*&quot; oder ka....was ich noch machen könnte.</p>
<p>MfG<br />
Stromberg</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1396778</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1396778</guid><dc:creator><![CDATA[Stromberg]]></dc:creator><pubDate>Fri, 02 Nov 2007 23:09:58 GMT</pubDate></item><item><title><![CDATA[Reply to Kopierkonstruktor mit Zeigern on Fri, 02 Nov 2007 23:14:26 GMT]]></title><description><![CDATA[<p>*rhs.m_a etc.</p>
<p>mehrere rohe Zeiger in einer Klasse sind in der Regel keine gute Idee. Das ist recht schwer exception-sicher zu bekommen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1396783</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1396783</guid><dc:creator><![CDATA[camper]]></dc:creator><pubDate>Fri, 02 Nov 2007 23:14:26 GMT</pubDate></item><item><title><![CDATA[Reply to Kopierkonstruktor mit Zeigern on Fri, 02 Nov 2007 23:38:36 GMT]]></title><description><![CDATA[<p>Ist auch nur ein Übungs Beispiel. Warum gehts jetzt nicht mehr:</p>
<pre><code class="language-cpp">#include &lt;iostream&gt;
#include &lt;algorithm&gt;
using namespace std;

class Event
{
    public:
    Event(int a_, int b_, int c_);
    Event(const Event &amp;rhs);
    ~Event();
    const Event &amp; operator= (const Event &amp; rhs);
    void swap_obj(Event &amp; object);

    private:
    int *m_a;
    int *m_b;
    int *m_c;
};

Event::Event(int a_, int b_, int c_)
:m_a(new int(a_)),
 m_b(new int(b_)),
 m_c(new int(c_))
{

}

Event::Event(const Event &amp;rhs)
:m_a(new int(*rhs.m_a)),
 m_b(new int(*rhs.m_b)),
 m_c(new int(*rhs.m_c))
{

}

Event::~Event()
{
    delete m_a;
    delete m_b;
    delete m_c;
}

const Event &amp; Event::operator= (const Event &amp; rhs)
{
    Event temp(rhs);
    swap_obj(temp);
}

void swap_obj(Event &amp; object)
{
    swap(m_a,object.m_a); //&lt;--!
    swap(m_b,object.m_b); //&lt;--!
    swap(m_c,object.m_c); //&lt;--!
}

int main()
{

    return 0;
}
</code></pre>
<blockquote>
<p>Compiling: C:\MinGW\Andi\test.cpp<br />
C:\MinGW\Andi\test.cpp: In function <code>void swap_obj(Event&amp;)': C:\\MinGW\\Andi\\test.cpp:52: error:</code>m_a' undeclared (first use this function)<br />
C:\MinGW\Andi\test.cpp:52: error: (Each undeclared identifier is reported only once for each function it appears in.)<br />
C:\MinGW\Andi\test.cpp:15: error: <code>int*Event::m_a' is private C:\\MinGW\\Andi\\test.cpp:52: error: within this context C:\\MinGW\\Andi\\test.cpp:53: error:</code>m_b' undeclared (first use this function)<br />
C:\MinGW\Andi\test.cpp:16: error: <code>int*Event::m_b' is private C:\\MinGW\\Andi\\test.cpp:53: error: within this context C:\\MinGW\\Andi\\test.cpp:54: error:</code>m_c' undeclared (first use this function)<br />
C:\MinGW\Andi\test.cpp:17: error: `int*Event::m_c' is private<br />
C:\MinGW\Andi\test.cpp:54: error: within this context<br />
Process terminated with status 1 (0 minutes, 0 seconds)<br />
10 errors, 0 warnings</p>
</blockquote>
<p>MfG<br />
Stromberg</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1396791</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1396791</guid><dc:creator><![CDATA[Stromberg]]></dc:creator><pubDate>Fri, 02 Nov 2007 23:38:36 GMT</pubDate></item><item><title><![CDATA[Reply to Kopierkonstruktor mit Zeigern on Fri, 02 Nov 2007 23:41:59 GMT]]></title><description><![CDATA[<pre><code class="language-cpp">void swap_obj(Event &amp; object)
{
    swap(m_a,object.m_a); //&lt;--!
    swap(m_b,object.m_b); //&lt;--!
    swap(m_c,object.m_c); //&lt;--!
}
</code></pre>
<p>Weil du bei der Funktion die Klasse vergessen hast <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f603.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--grinning_face_with_big_eyes"
      title=":D"
      alt="😃"
    /></p>
<pre><code class="language-cpp">void Event::swap_obj(Event &amp; object)
{
    swap(m_a,object.m_a); //&lt;--!
    swap(m_b,object.m_b); //&lt;--!
    swap(m_c,object.m_c); //&lt;--!
}
</code></pre>
<p>So sollte es gehen.<br />
rya.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1396793</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1396793</guid><dc:creator><![CDATA[[[global:former_user]]]]></dc:creator><pubDate>Fri, 02 Nov 2007 23:41:59 GMT</pubDate></item><item><title><![CDATA[Reply to Kopierkonstruktor mit Zeigern on Fri, 02 Nov 2007 23:48:58 GMT]]></title><description><![CDATA[<p>Oh man wie ichs doch hasse wenn mir so peinlich Fehler passieren, und ichs dann auch noch hier poste! man man man....is glaub einfach zu spät für mich.<br />
Gute Nacht.<br />
Stromberg</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1396795</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1396795</guid><dc:creator><![CDATA[Stromberg]]></dc:creator><pubDate>Fri, 02 Nov 2007 23:48:58 GMT</pubDate></item><item><title><![CDATA[Reply to Kopierkonstruktor mit Zeigern on Fri, 02 Nov 2007 23:59:13 GMT]]></title><description><![CDATA[<p>Gute Nacht Stromberg :).<br />
Und mach dir nix draus, das passiert anderen auch. Einfach liegen lassen und am nächsten Tag nochmal draufkucken, wenns so spät is.^^<br />
rya.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1396800</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1396800</guid><dc:creator><![CDATA[[[global:former_user]]]]></dc:creator><pubDate>Fri, 02 Nov 2007 23:59:13 GMT</pubDate></item></channel></rss>