<?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[Probleme mit Pointern auf Objekte]]></title><description><![CDATA[<p>Hey, eine Frage:</p>
<p>Warun kann ich keine normalen Pointer auf Objekte erstellen, deren Konstruktor ich keine Parameter gegeben habe?</p>
<p>Folgendes Beispiel:</p>
<pre><code class="language-cpp">class A {
      public:
             A(int data =1);
             int getData()const {return mData;}
      private:
              int mData;
};
class B {
      public:
             int getData()const {return 2;}
};

A::A(int data): mData(data) {}

int main(int argc, char *argv[])
{
    A a1(1);
    A a2();
    B b();

    A *pa1(&amp;a1);
    A *pa2(&amp;a2); // Hier der Fehler!
    B *pb(&amp;b); // Hier der Fehler!

    system(&quot;PAUSE&quot;);
    return EXIT_SUCCESS;
}
</code></pre>
<p>Ich will also Pointer auf die Objekte erstellen, einfach mithilfe des Adressoperators.<br />
Der Compiler gibt mir aber folgende Fehlermeldung:<br />
&quot;cannot convert 'A (<em>)()' to 'A</em>' in initialization&quot;<br />
Warum erstellt er denn nicht einfach normale Pointer sondern 'A (*)()', und vor allem: Warum hängt das mit der Art des Konstruktoraufrufs zusammen?<br />
Was muss ich machen, damit ich normale Pointer kriege?</p>
<p>Danke schonmal im Voraus.</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/279821/probleme-mit-pointern-auf-objekte</link><generator>RSS for Node</generator><lastBuildDate>Mon, 24 Aug 2026 10:10:08 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/279821.rss" rel="self" type="application/rss+xml"/><pubDate>Tue, 04 Jan 2011 13:41:34 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Probleme mit Pointern auf Objekte on Tue, 04 Jan 2011 13:41:34 GMT]]></title><description><![CDATA[<p>Hey, eine Frage:</p>
<p>Warun kann ich keine normalen Pointer auf Objekte erstellen, deren Konstruktor ich keine Parameter gegeben habe?</p>
<p>Folgendes Beispiel:</p>
<pre><code class="language-cpp">class A {
      public:
             A(int data =1);
             int getData()const {return mData;}
      private:
              int mData;
};
class B {
      public:
             int getData()const {return 2;}
};

A::A(int data): mData(data) {}

int main(int argc, char *argv[])
{
    A a1(1);
    A a2();
    B b();

    A *pa1(&amp;a1);
    A *pa2(&amp;a2); // Hier der Fehler!
    B *pb(&amp;b); // Hier der Fehler!

    system(&quot;PAUSE&quot;);
    return EXIT_SUCCESS;
}
</code></pre>
<p>Ich will also Pointer auf die Objekte erstellen, einfach mithilfe des Adressoperators.<br />
Der Compiler gibt mir aber folgende Fehlermeldung:<br />
&quot;cannot convert 'A (<em>)()' to 'A</em>' in initialization&quot;<br />
Warum erstellt er denn nicht einfach normale Pointer sondern 'A (*)()', und vor allem: Warum hängt das mit der Art des Konstruktoraufrufs zusammen?<br />
Was muss ich machen, damit ich normale Pointer kriege?</p>
<p>Danke schonmal im Voraus.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2002234</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2002234</guid><dc:creator><![CDATA[PeterPain]]></dc:creator><pubDate>Tue, 04 Jan 2011 13:41:34 GMT</pubDate></item><item><title><![CDATA[Reply to Probleme mit Pointern auf Objekte on Tue, 04 Jan 2011 13:48:21 GMT]]></title><description><![CDATA[<pre><code class="language-cpp">int main()
{
    A a1(1);
    A a2(); // Dies ist eine Funktionsdeklaration, richtig wäre &quot;A a2;&quot;
    B b();  // Dies ist eine Funktionsdeklaration, richtig wäre &quot;B b;&quot;
//...
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/2002241</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2002241</guid><dc:creator><![CDATA[asc]]></dc:creator><pubDate>Tue, 04 Jan 2011 13:48:21 GMT</pubDate></item><item><title><![CDATA[Reply to Probleme mit Pointern auf Objekte on Tue, 04 Jan 2011 13:50:21 GMT]]></title><description><![CDATA[<p>Weil du eine Funktionsdeklaration machst und nicht den Standardkonstruktor aufrufst. Entferne die leeren Klammern und es sollte gehen.</p>
<pre><code class="language-cpp">A a2(); // Prototyp für eine Funktion die A zurück gibt
A a2;   // Objekt der Klasse A
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/2002243</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2002243</guid><dc:creator><![CDATA[Paul Müller]]></dc:creator><pubDate>Tue, 04 Jan 2011 13:50:21 GMT</pubDate></item><item><title><![CDATA[Reply to Probleme mit Pointern auf Objekte on Tue, 04 Jan 2011 13:50:56 GMT]]></title><description><![CDATA[<p>Aaaaaaaaaah! <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>
<p>Das erklärt einiges.<br />
Stimmt, ist mir gar nicht aufgefallen, dass ich in Wahrheit eine Funktion deklariert habe.<br />
Gut das hat's gelöst, dankeschön!</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2002245</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2002245</guid><dc:creator><![CDATA[PeterPain]]></dc:creator><pubDate>Tue, 04 Jan 2011 13:50:56 GMT</pubDate></item></channel></rss>