<?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[Array von Instanzen anlegen, Konstruktor mit Parametern...]]></title><description><![CDATA[<p>Hallo,</p>
<p>habe folgendes Problem. Eine Klasse <em>Gaga</em> ist so geschrieben, dass der Standardkonstruktor absichtlich <em>private</em> und nicht implementiert ist. Hier Gaga.h:</p>
<pre><code class="language-cpp">class Gaga
{
    private:
        // Private and not implemented
        Gaga();
        ...
        // Some data
        int m_a;
        int m_b;

    public:
        Gaga(int a, int b);
};
</code></pre>
<p>Und Gaga.cpp:</p>
<pre><code class="language-cpp">Gaga::Gaga(int a, int b) :
    m_a(a),
    m_b(b)
{
}
</code></pre>
<p>Nun kann ich ja folgendes kompilieren bzw. nicht kompilieren:</p>
<pre><code class="language-cpp">Gaga Table;    // Compiler error: Gaga() ist private

Gaga Table(1, 2);    // Ok
</code></pre>
<p>Nun möchte ich ein Array anlegen:</p>
<pre><code class="language-cpp">#define MAX_TABLES    10u

Gaga Table[MAX_TABLES];    // Compiler error :(
</code></pre>
<p>Der Compiler weigert sich, wie erwartet, die Zeile zu kompilieren. Weiss jemand von C++ Profis, ob es eine Möglichkeit gibt, ohne <em>Gaga</em> zu ändern, Arrays davon anzulegen?<br />
So was geht ja z.B. nicht:</p>
<pre><code class="language-cpp">Gaga Table[MAX_TABLES](0, 0);    // Compiler error :(
</code></pre>
<p>Stehe irgendwie auf dem Schlauch <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f615.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--confused_face"
      title=":confused:"
      alt="😕"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/topic/242676/array-von-instanzen-anlegen-konstruktor-mit-parametern</link><generator>RSS for Node</generator><lastBuildDate>Sun, 20 Sep 2026 21:15:44 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/242676.rss" rel="self" type="application/rss+xml"/><pubDate>Sat, 06 Jun 2009 22:15:24 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Array von Instanzen anlegen, Konstruktor mit Parametern... on Sat, 06 Jun 2009 22:15:24 GMT]]></title><description><![CDATA[<p>Hallo,</p>
<p>habe folgendes Problem. Eine Klasse <em>Gaga</em> ist so geschrieben, dass der Standardkonstruktor absichtlich <em>private</em> und nicht implementiert ist. Hier Gaga.h:</p>
<pre><code class="language-cpp">class Gaga
{
    private:
        // Private and not implemented
        Gaga();
        ...
        // Some data
        int m_a;
        int m_b;

    public:
        Gaga(int a, int b);
};
</code></pre>
<p>Und Gaga.cpp:</p>
<pre><code class="language-cpp">Gaga::Gaga(int a, int b) :
    m_a(a),
    m_b(b)
{
}
</code></pre>
<p>Nun kann ich ja folgendes kompilieren bzw. nicht kompilieren:</p>
<pre><code class="language-cpp">Gaga Table;    // Compiler error: Gaga() ist private

Gaga Table(1, 2);    // Ok
</code></pre>
<p>Nun möchte ich ein Array anlegen:</p>
<pre><code class="language-cpp">#define MAX_TABLES    10u

Gaga Table[MAX_TABLES];    // Compiler error :(
</code></pre>
<p>Der Compiler weigert sich, wie erwartet, die Zeile zu kompilieren. Weiss jemand von C++ Profis, ob es eine Möglichkeit gibt, ohne <em>Gaga</em> zu ändern, Arrays davon anzulegen?<br />
So was geht ja z.B. nicht:</p>
<pre><code class="language-cpp">Gaga Table[MAX_TABLES](0, 0);    // Compiler error :(
</code></pre>
<p>Stehe irgendwie auf dem Schlauch <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f615.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--confused_face"
      title=":confused:"
      alt="😕"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1722510</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1722510</guid><dc:creator><![CDATA[abc.w]]></dc:creator><pubDate>Sat, 06 Jun 2009 22:15:24 GMT</pubDate></item><item><title><![CDATA[Reply to Array von Instanzen anlegen, Konstruktor mit Parametern... on Sat, 06 Jun 2009 22:20:20 GMT]]></title><description><![CDATA[<p><a href="http://www.parashift.com/c++-faq-lite/ctors.html#faq-10.5" rel="nofollow">Geht nich.</a></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1722512</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1722512</guid><dc:creator><![CDATA[Badestrand]]></dc:creator><pubDate>Sat, 06 Jun 2009 22:20:20 GMT</pubDate></item><item><title><![CDATA[Reply to Array von Instanzen anlegen, Konstruktor mit Parametern... on Sun, 07 Jun 2009 09:13:42 GMT]]></title><description><![CDATA[<p>Badestrand schrieb:</p>
<blockquote>
<p><a href="http://www.parashift.com/c++-faq-lite/ctors.html#faq-10.5" rel="nofollow">Geht nich.</a></p>
</blockquote>
<p>Danke schön für die Aufklärung und den guten Link! <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/1722586</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1722586</guid><dc:creator><![CDATA[abc.w]]></dc:creator><pubDate>Sun, 07 Jun 2009 09:13:42 GMT</pubDate></item><item><title><![CDATA[Reply to Array von Instanzen anlegen, Konstruktor mit Parametern... on Sun, 07 Jun 2009 10:13:58 GMT]]></title><description><![CDATA[<p>Wenn du STL-Container verwendest, hast du dieses Problem nicht. Dann kannst du zum Beispiel</p>
<pre><code class="language-cpp">std::vector&lt;Gaga&gt; Vec(4, Gaga(1, 2));
Vec.push_back(Gaga(5, 3))
</code></pre>
<p>schreiben, solange deine Klasse kopierbar ist.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1722622</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1722622</guid><dc:creator><![CDATA[Nexus]]></dc:creator><pubDate>Sun, 07 Jun 2009 10:13:58 GMT</pubDate></item><item><title><![CDATA[Reply to Array von Instanzen anlegen, Konstruktor mit Parametern... on Sun, 07 Jun 2009 18:24:57 GMT]]></title><description><![CDATA[<p>Nexus schrieb:</p>
<blockquote>
<p>Wenn du STL-Container verwendest, hast du dieses Problem nicht. Dann kannst du zum Beispiel</p>
<pre><code class="language-cpp">std::vector&lt;Gaga&gt; Vec(4, Gaga(1, 2));
Vec.push_back(Gaga(5, 3))
</code></pre>
<p>schreiben, solange deine Klasse kopierbar ist.</p>
</blockquote>
<p>hmmm ich hatte so in Erinnerung, dass std::vector-Elemente auch default-konstruierbar sein müssten. Ist das falsch?</p>
<p>Gruß,</p>
<p>Simon2.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1722913</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1722913</guid><dc:creator><![CDATA[Simon2]]></dc:creator><pubDate>Sun, 07 Jun 2009 18:24:57 GMT</pubDate></item><item><title><![CDATA[Reply to Array von Instanzen anlegen, Konstruktor mit Parametern... on Sun, 07 Jun 2009 18:29:01 GMT]]></title><description><![CDATA[<p>Simon2 schrieb:</p>
<blockquote>
<p>ich hatte so in Erinnerung, dass std::vector-Elemente auch default-konstruierbar sein müssten</p>
</blockquote>
<p>Da es auch auf oben genanntem Link als Alternative vorgeschlagen wird und mir kein Grund einfallen sollte, wieso das so sein sollte, hattest du es offenbar falsch in Erinnerung ^^</p>
<p>bb</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1722916</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1722916</guid><dc:creator><![CDATA[unskilled]]></dc:creator><pubDate>Sun, 07 Jun 2009 18:29:01 GMT</pubDate></item><item><title><![CDATA[Reply to Array von Instanzen anlegen, Konstruktor mit Parametern... on Sun, 07 Jun 2009 18:58:36 GMT]]></title><description><![CDATA[<p>unskilled schrieb:</p>
<blockquote>
<p>Simon2 schrieb:</p>
<blockquote>
<p>ich hatte so in Erinnerung, dass std::vector-Elemente auch default-konstruierbar sein müssten</p>
</blockquote>
<p>Da es auch auf oben genanntem Link als Alternative vorgeschlagen wird und mir kein Grund einfallen sollte, wieso das so sein sollte</p>
</blockquote>
<p>Wie wäre es mit <code>std::vector&lt;&gt;::resize()</code> ?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1722932</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1722932</guid><dc:creator><![CDATA[audacia]]></dc:creator><pubDate>Sun, 07 Jun 2009 18:58:36 GMT</pubDate></item><item><title><![CDATA[Reply to Array von Instanzen anlegen, Konstruktor mit Parametern... on Sun, 07 Jun 2009 19:03:09 GMT]]></title><description><![CDATA[<p>Aber nur, wenn man <code>resize(size_type)</code> verwenden möchte ^^ außerdem gibts ja auch noch <code>resize(size_type length, const_reference val);</code> ...</p>
<p>bb</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1722936</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1722936</guid><dc:creator><![CDATA[unskilled]]></dc:creator><pubDate>Sun, 07 Jun 2009 19:03:09 GMT</pubDate></item></channel></rss>