<?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[Konstruktor von einem Attribut aufrufen]]></title><description><![CDATA[<p>Hallo,</p>
<p>Ist es möglich den Konstruktor von einem Klassenattribut aufzurufen? Wenn man z.B. folgende Klassen hat:</p>
<pre><code>class A {
    A(int x, int y) {...}
};

class B {
private:
    A a;
public:
    B();
};
</code></pre>
<p>Wie würde man hier im Konstruktor von B das Objekt a initialisieren? Normalerweise schreibt man ja z.B.</p>
<p>A a(3,2);</p>
<p>aber in diesem Fall wurde a ja schon deklariert. Bisher habe ich in solchen Fällen immer a als Zeiger deklariert und mit &quot;a = new A(3,2);&quot; erstellt.</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/309145/konstruktor-von-einem-attribut-aufrufen</link><generator>RSS for Node</generator><lastBuildDate>Wed, 05 Aug 2026 12:09:42 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/309145.rss" rel="self" type="application/rss+xml"/><pubDate>Mon, 15 Oct 2012 10:59:18 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Konstruktor von einem Attribut aufrufen on Mon, 15 Oct 2012 10:59:18 GMT]]></title><description><![CDATA[<p>Hallo,</p>
<p>Ist es möglich den Konstruktor von einem Klassenattribut aufzurufen? Wenn man z.B. folgende Klassen hat:</p>
<pre><code>class A {
    A(int x, int y) {...}
};

class B {
private:
    A a;
public:
    B();
};
</code></pre>
<p>Wie würde man hier im Konstruktor von B das Objekt a initialisieren? Normalerweise schreibt man ja z.B.</p>
<p>A a(3,2);</p>
<p>aber in diesem Fall wurde a ja schon deklariert. Bisher habe ich in solchen Fällen immer a als Zeiger deklariert und mit &quot;a = new A(3,2);&quot; erstellt.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2260641</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2260641</guid><dc:creator><![CDATA[MaxJ]]></dc:creator><pubDate>Mon, 15 Oct 2012 10:59:18 GMT</pubDate></item><item><title><![CDATA[Reply to Konstruktor von einem Attribut aufrufen on Mon, 15 Oct 2012 11:13:31 GMT]]></title><description><![CDATA[<pre><code class="language-cpp">B::B() : A(x,y) {} // In einer Cpp-Datei.
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/2260651</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2260651</guid><dc:creator><![CDATA[out]]></dc:creator><pubDate>Mon, 15 Oct 2012 11:13:31 GMT</pubDate></item><item><title><![CDATA[Reply to Konstruktor von einem Attribut aufrufen on Mon, 15 Oct 2012 11:15:37 GMT]]></title><description><![CDATA[<p>out schrieb:</p>
<blockquote>
<pre><code class="language-cpp">B::B() : A(x,y) {} // In einer Cpp-Datei.
</code></pre>
</blockquote>
<p>Sorry, mach aus dem <code>A</code> ein <code>a</code> .</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2260653</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2260653</guid><dc:creator><![CDATA[out]]></dc:creator><pubDate>Mon, 15 Oct 2012 11:15:37 GMT</pubDate></item><item><title><![CDATA[Reply to Konstruktor von einem Attribut aufrufen on Mon, 15 Oct 2012 12:06:44 GMT]]></title><description><![CDATA[<p>Ok, danke schon mal! Leider hilft mir das in meinem speziellen Fall noch nicht ganz. Ich versuche gerade eine map zu initialisieren und da brauche ich als Parameter einen Funktionszeiger.</p>
<pre><code>struct Edge {
    int v1, v2;
};

struct EdgeData {
    bool v1Selected, v2Selected;
};

class Selection {
private:
    map&lt;Edge, EdgeData, bool(*)(Edge, Edge)&gt; edges;
public:
    Selection();
};
</code></pre>
<p>In der cpp-Datei habe ich zusätzlich noch diese Funktion:</p>
<pre><code>bool edgeCompare(Edge e1, Edge e2) {
    if(e1.v1 == e2.v1)
        return e1.v2 &lt; e2.v2;
    else
        return e1.v1 &lt; e2.v1;
}
</code></pre>
<p>Die map will ich so wie <a href="http://www.cplusplus.com/reference/stl/map/map/" rel="nofollow">hier</a> im letzten Beispiel initialisieren. Dazu bräuchte ich ungefähr so einen Funktionszeiger &quot;bool(*fn_pt)(Edge, Edge) = edgeCompare;&quot;. Die Frage ist nur wo definier ich den am besten? Wenn ich das einfach so oben in die cpp-Datei schreibe hätte ich das ja als globale Variable oder? Am besten wäre es wohl wenn ich ihn direkt bei der Definition vom Konstruktor definieren könnte, aber wie?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2260672</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2260672</guid><dc:creator><![CDATA[MaxJ]]></dc:creator><pubDate>Mon, 15 Oct 2012 12:06:44 GMT</pubDate></item><item><title><![CDATA[Reply to Konstruktor von einem Attribut aufrufen on Mon, 15 Oct 2012 12:24:49 GMT]]></title><description><![CDATA[<p><code>&amp;edgeCompare</code> ?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2260676</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2260676</guid><dc:creator><![CDATA[SeppJ]]></dc:creator><pubDate>Mon, 15 Oct 2012 12:24:49 GMT</pubDate></item><item><title><![CDATA[Reply to Konstruktor von einem Attribut aufrufen on Mon, 15 Oct 2012 12:25:37 GMT]]></title><description><![CDATA[<pre><code class="language-cpp">Selection::Selection() : edges(&amp;edgeCompare) { }
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/2260677</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2260677</guid><dc:creator><![CDATA[so?]]></dc:creator><pubDate>Mon, 15 Oct 2012 12:25:37 GMT</pubDate></item><item><title><![CDATA[Reply to Konstruktor von einem Attribut aufrufen on Mon, 15 Oct 2012 12:26:54 GMT]]></title><description><![CDATA[<p>Ah, so einfach ist das? Vielen Dank!</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2260678</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2260678</guid><dc:creator><![CDATA[MaxJ]]></dc:creator><pubDate>Mon, 15 Oct 2012 12:26:54 GMT</pubDate></item></channel></rss>