<?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[Kurze Frage zum Konstruktor .]]></title><description><![CDATA[<p>Hallo Leute .<br />
Ich wiederhole gerade die Prinzipien der Zeigerarithmetik und bin auf einen kleinen Fehler gestoßen den ich nicht deuten kann .<br />
Der Code soll keine Funtkion erfülllen ich war lediglich am herum probieren .<br />
Nun zu meiner Frage .<br />
Sobald ich in der main.cpp in der vorletzen zeile statt</p>
<p>cat anotherCat; cat anotherCat(); aufrufe bekomme ich folgende Fehlermeldung ..</p>
<blockquote>
<p>cannot convert 'cat (<em>)()' to 'const cat</em>' for argument '1' to 'int aFunc(const cat*)'</p>
</blockquote>
<p>Ist es nicht egal ob ich &quot;cat bla&quot; statt &quot;cat bla()&quot; aufrufe ?<br />
In beiden Fällen wird doch der Standard Konstruktor aufgerufen oder nicht ?<br />
Und wie ist diese Fehlermeldung zu deuten .. ?</p>
<p>Greets</p>
<p>Folgender Code :</p>
<pre><code class="language-cpp">#include &lt;cat.h&gt;
int aFunc( const cat * aP)
{

	return aP-&gt;getA();

}

int main (int argc, char * const argv[]) {
    // insert code here...
    std::cout &lt;&lt; &quot;Hello, World!\n&quot;;
	int * pInt = new int; // Objekt auf Heap erzeugt 
	delete pInt; // Speicher auf Heap freigeben
	int a = 6; // Variable a mit 6 initialisieren
	pInt = &amp;a; // pInt die Adresse von a zuweisen 
	*pInt = 7; // das was an der Adresse steht die in pInt gespeichert ist wird nun zur 7
	cat * aCat = new cat;
	std::cout &lt;&lt; aCat-&gt;getA() &lt;&lt; std::endl;
	std::cout &lt;&lt; new int &lt;&lt; std::endl;
	cat anotherCat;
	aFunc(&amp;anotherCat);
    return 0;
}
</code></pre>
<pre><code class="language-cpp">class cat
{
	private :

	int * a;
	int * b;

	public:

	cat();
	~cat();
	int getA()const;
	void setA(int _a);

};
</code></pre>
<pre><code class="language-cpp">#include &quot;cat.h&quot;

cat::cat()
{
	a = new int;
	*a = 0;

	b = new int;
	*b =0;

}
cat::~cat()
{
	delete a;
	a = 0;
	delete b;
	b = 0;
}
int cat::getA()const
{
	return *a;
}
void cat::setA(int _a)
{
	*a = _a;
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/topic/283167/kurze-frage-zum-konstruktor</link><generator>RSS for Node</generator><lastBuildDate>Sat, 22 Aug 2026 18:25:47 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/283167.rss" rel="self" type="application/rss+xml"/><pubDate>Sun, 06 Mar 2011 18:18:56 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Kurze Frage zum Konstruktor . on Sun, 06 Mar 2011 18:18:56 GMT]]></title><description><![CDATA[<p>Hallo Leute .<br />
Ich wiederhole gerade die Prinzipien der Zeigerarithmetik und bin auf einen kleinen Fehler gestoßen den ich nicht deuten kann .<br />
Der Code soll keine Funtkion erfülllen ich war lediglich am herum probieren .<br />
Nun zu meiner Frage .<br />
Sobald ich in der main.cpp in der vorletzen zeile statt</p>
<p>cat anotherCat; cat anotherCat(); aufrufe bekomme ich folgende Fehlermeldung ..</p>
<blockquote>
<p>cannot convert 'cat (<em>)()' to 'const cat</em>' for argument '1' to 'int aFunc(const cat*)'</p>
</blockquote>
<p>Ist es nicht egal ob ich &quot;cat bla&quot; statt &quot;cat bla()&quot; aufrufe ?<br />
In beiden Fällen wird doch der Standard Konstruktor aufgerufen oder nicht ?<br />
Und wie ist diese Fehlermeldung zu deuten .. ?</p>
<p>Greets</p>
<p>Folgender Code :</p>
<pre><code class="language-cpp">#include &lt;cat.h&gt;
int aFunc( const cat * aP)
{

	return aP-&gt;getA();

}

int main (int argc, char * const argv[]) {
    // insert code here...
    std::cout &lt;&lt; &quot;Hello, World!\n&quot;;
	int * pInt = new int; // Objekt auf Heap erzeugt 
	delete pInt; // Speicher auf Heap freigeben
	int a = 6; // Variable a mit 6 initialisieren
	pInt = &amp;a; // pInt die Adresse von a zuweisen 
	*pInt = 7; // das was an der Adresse steht die in pInt gespeichert ist wird nun zur 7
	cat * aCat = new cat;
	std::cout &lt;&lt; aCat-&gt;getA() &lt;&lt; std::endl;
	std::cout &lt;&lt; new int &lt;&lt; std::endl;
	cat anotherCat;
	aFunc(&amp;anotherCat);
    return 0;
}
</code></pre>
<pre><code class="language-cpp">class cat
{
	private :

	int * a;
	int * b;

	public:

	cat();
	~cat();
	int getA()const;
	void setA(int _a);

};
</code></pre>
<pre><code class="language-cpp">#include &quot;cat.h&quot;

cat::cat()
{
	a = new int;
	*a = 0;

	b = new int;
	*b =0;

}
cat::~cat()
{
	delete a;
	a = 0;
	delete b;
	b = 0;
}
int cat::getA()const
{
	return *a;
}
void cat::setA(int _a)
{
	*a = _a;
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/2030501</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2030501</guid><dc:creator><![CDATA[Bacid90210]]></dc:creator><pubDate>Sun, 06 Mar 2011 18:18:56 GMT</pubDate></item><item><title><![CDATA[Reply to Kurze Frage zum Konstruktor . on Sun, 06 Mar 2011 18:29:19 GMT]]></title><description><![CDATA[<p>Nein. Bei der zweiten Variante wird kein Objekt erstellt, sondern eine Funktion deklariert. Die Fehlermeldung besagt, dass der Zeiger auf die Funktion nicht nach const cat* konvertiert werden kann.</p>
<p>Soweit ich weiß, gilt deine Annahme, wenn du die Objekte auf dem Heap erzeugst:</p>
<pre><code class="language-cpp">cat* cat1 = new cat();
cat* cat2 = new cat;
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/2030504</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2030504</guid><dc:creator><![CDATA[Dasd]]></dc:creator><pubDate>Sun, 06 Mar 2011 18:29:19 GMT</pubDate></item><item><title><![CDATA[Reply to Kurze Frage zum Konstruktor . on Sun, 06 Mar 2011 18:37:29 GMT]]></title><description><![CDATA[<p>Implementiere ich einen Konstruktor der zwei int werte übernimmt kann ich das Objekt doch auch folgender maßen erstellen :</p>
<pre><code class="language-cpp">cat anotherCat(3,7);
</code></pre>
<p>Der Compiler müsste doch bei</p>
<pre><code class="language-cpp">cat anotherCat();
</code></pre>
<p>sehen das ich nur den Standard Konstruktor aufrufen möchte.<br />
Eine Funktion in der Main zu deklarieren funktioniert doch normalerweise gar nicht , deklariert man nicht eigentlich vor der main seine Funktionen ?</p>
<p>Das macht doch keinen Sinn oder liege ich da jetzt irgendwie falsch ?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2030506</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2030506</guid><dc:creator><![CDATA[Bacid90210]]></dc:creator><pubDate>Sun, 06 Mar 2011 18:37:29 GMT</pubDate></item><item><title><![CDATA[Reply to Kurze Frage zum Konstruktor . on Sun, 06 Mar 2011 18:40:00 GMT]]></title><description><![CDATA[<p>Für ne Erklärung:<br />
Google mal nach &quot;most vexing parse&quot;.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2030511</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2030511</guid><dc:creator><![CDATA[krümelkacker]]></dc:creator><pubDate>Sun, 06 Mar 2011 18:40:00 GMT</pubDate></item><item><title><![CDATA[Reply to Kurze Frage zum Konstruktor . on Sun, 06 Mar 2011 18:40:38 GMT]]></title><description><![CDATA[<p>Ok , hat sich erledigt . Habs verstanden .</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2030512</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2030512</guid><dc:creator><![CDATA[Bacid90210]]></dc:creator><pubDate>Sun, 06 Mar 2011 18:40:38 GMT</pubDate></item><item><title><![CDATA[Reply to Kurze Frage zum Konstruktor . on Mon, 21 Nov 2011 20:03:35 GMT]]></title><description><![CDATA[<p>huhu, wie dasd schon gesagt hat, ist</p>
<pre><code class="language-cpp">cat anotherCat(); // Prototyp einer Funkion
</code></pre>
<p>die Deklaration einer Funktion namens anotherCat, und hat überhaupt gar nichts mit einem Konstruktor zu tun.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2030515</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2030515</guid><dc:creator><![CDATA[[[global:guest]]]]></dc:creator><pubDate>Mon, 21 Nov 2011 20:03:35 GMT</pubDate></item><item><title><![CDATA[Reply to Kurze Frage zum Konstruktor . on Sun, 06 Mar 2011 18:49:26 GMT]]></title><description><![CDATA[<p>Ok dankeschön , das wusste ich auch noch nicht .</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2030520</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2030520</guid><dc:creator><![CDATA[Bacid90210]]></dc:creator><pubDate>Sun, 06 Mar 2011 18:49:26 GMT</pubDate></item></channel></rss>