<?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[Fehlermeldung bei Methode]]></title><description><![CDATA[<p>Hallo Leute, ich beschäftige mich momentan bis zum erbrechen mit Übergabe von Objekten an Methoden sowie die Rückgabe davon an einen Aufrufer, damit das ganze bei mir in Fleisch und Blut übergeht OOP ist nämlich ein sehr umfangreiches Thema. Die Anfänglichen Versuche klappten bei mir schon ganz gut, doch jetzt bin ich über eine Fehlermeldung gestolpert.</p>
<p>Erstmal zu dem wie ich vorgegangen bin. Schritt 1: Ich habe eine globale Funktion geschrieben die zwei Objekte übergeben bekommt, dies habe ich auf allen drei Wegen gemacht Call-by-Value, Call-by-Reference(Pointer/References). Das hat super geklappt. Die Funktion hat die Objekte verglichen und das gewünschte ausgegeben.</p>
<p>Schritt 2: Ich habe die Funktion erweitert, nun vergleicht sie die Objekte und gibt das gewünschte Objekt zurück an den Aufrufer. Ebenfalls habe ich alle drei Varianten ausprobiert.</p>
<p>Schritt 3: Ich habe überlegt, nun möchte ich den ganzen Aufwand noch weiter reduzieren, ich schreibe die Funktion als Methode nun in meine Klasse rein. Doch das funktionierte nicht, ehrlich gesagt verstehe ich auch nicht was der mir damit sagen will. Es ging einfach darum, dass ich auf ein Objekt nun die Methode anwende und nun noch das andere Objekt lediglich übergeben muss.</p>
<p>Nun zum Code, welchen ich soweit wie möglich gekürzt habe:</p>
<pre><code class="language-cpp">// circle.h
class Circle
{
private:
    double radius;

public:
    double getRadius(void) const;

    Circle* getBiggestCircle(Circle*); // Diese Methode verursacht die Probleme
};
</code></pre>
<p>Und nun meine Quelldatei:</p>
<pre><code class="language-cpp">// circle.cpp
double Circle::getRadius(void) const
{
    return this-&gt;radius;
}

Circle* Circle::getBiggestCircle(Circle* kreis)
{
    if(this-&gt;radius &gt; kreis-&gt;getRadius())
        return this;
    else
        return kreis;
}
</code></pre>
<p>Die Fehlermeldung kommt bei mir mit dem g++ unter Ubuntu:</p>
<pre><code>circle.cpp:36:47: error: no ‘Circle* Circle::getBiggestCircle(Circle*)’ member function declared in class ‘Circle’
</code></pre>
<p>Ich weiß echt nicht was ich falsch gemacht habe, oder habe ich irgendwas übersehen. Passiert ja zT sehr schnell wenn man wie ich nur mit Editor und Terminal arbeitet.</p>
<p>Gruß Infty</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/306432/fehlermeldung-bei-methode</link><generator>RSS for Node</generator><lastBuildDate>Sat, 08 Aug 2026 05:25:40 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/306432.rss" rel="self" type="application/rss+xml"/><pubDate>Sat, 28 Jul 2012 11:19:08 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Fehlermeldung bei Methode on Sat, 28 Jul 2012 11:19:08 GMT]]></title><description><![CDATA[<p>Hallo Leute, ich beschäftige mich momentan bis zum erbrechen mit Übergabe von Objekten an Methoden sowie die Rückgabe davon an einen Aufrufer, damit das ganze bei mir in Fleisch und Blut übergeht OOP ist nämlich ein sehr umfangreiches Thema. Die Anfänglichen Versuche klappten bei mir schon ganz gut, doch jetzt bin ich über eine Fehlermeldung gestolpert.</p>
<p>Erstmal zu dem wie ich vorgegangen bin. Schritt 1: Ich habe eine globale Funktion geschrieben die zwei Objekte übergeben bekommt, dies habe ich auf allen drei Wegen gemacht Call-by-Value, Call-by-Reference(Pointer/References). Das hat super geklappt. Die Funktion hat die Objekte verglichen und das gewünschte ausgegeben.</p>
<p>Schritt 2: Ich habe die Funktion erweitert, nun vergleicht sie die Objekte und gibt das gewünschte Objekt zurück an den Aufrufer. Ebenfalls habe ich alle drei Varianten ausprobiert.</p>
<p>Schritt 3: Ich habe überlegt, nun möchte ich den ganzen Aufwand noch weiter reduzieren, ich schreibe die Funktion als Methode nun in meine Klasse rein. Doch das funktionierte nicht, ehrlich gesagt verstehe ich auch nicht was der mir damit sagen will. Es ging einfach darum, dass ich auf ein Objekt nun die Methode anwende und nun noch das andere Objekt lediglich übergeben muss.</p>
<p>Nun zum Code, welchen ich soweit wie möglich gekürzt habe:</p>
<pre><code class="language-cpp">// circle.h
class Circle
{
private:
    double radius;

public:
    double getRadius(void) const;

    Circle* getBiggestCircle(Circle*); // Diese Methode verursacht die Probleme
};
</code></pre>
<p>Und nun meine Quelldatei:</p>
<pre><code class="language-cpp">// circle.cpp
double Circle::getRadius(void) const
{
    return this-&gt;radius;
}

Circle* Circle::getBiggestCircle(Circle* kreis)
{
    if(this-&gt;radius &gt; kreis-&gt;getRadius())
        return this;
    else
        return kreis;
}
</code></pre>
<p>Die Fehlermeldung kommt bei mir mit dem g++ unter Ubuntu:</p>
<pre><code>circle.cpp:36:47: error: no ‘Circle* Circle::getBiggestCircle(Circle*)’ member function declared in class ‘Circle’
</code></pre>
<p>Ich weiß echt nicht was ich falsch gemacht habe, oder habe ich irgendwas übersehen. Passiert ja zT sehr schnell wenn man wie ich nur mit Editor und Terminal arbeitet.</p>
<p>Gruß Infty</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2236410</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2236410</guid><dc:creator><![CDATA[Infty]]></dc:creator><pubDate>Sat, 28 Jul 2012 11:19:08 GMT</pubDate></item><item><title><![CDATA[Reply to Fehlermeldung bei Methode on Sat, 28 Jul 2012 11:24:32 GMT]]></title><description><![CDATA[<p>Zeig bitte vollständige Dateien. Hast du z.B. den Header inkludiert?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2236412</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2236412</guid><dc:creator><![CDATA[drakon]]></dc:creator><pubDate>Sat, 28 Jul 2012 11:24:32 GMT</pubDate></item><item><title><![CDATA[Reply to Fehlermeldung bei Methode on Sat, 28 Jul 2012 11:30:05 GMT]]></title><description><![CDATA[<p>Also jetzt mal die Dateien circle.h und circle.cpp. In der main.cpp habe ich noch kein Objekt erzeugt wollte erstmal sichergehen, dass der compiler es auch tut.<br />
Nun:</p>
<pre><code class="language-cpp">// Circle.h
#include &lt;iostream&gt;
#include &lt;cmath&gt;

class Circle
{
private:
	// Eigenschaften
	double radius;

public:
	// Konstruktordeklaration
	Circle(double = 0.0);

	// Destruktordeklaration
	~Circle(void);

	// Zugriffsmethodendeklarationen
	double getRadius(void) const;
	void setRadius(double);

	// Methodendeklarationen
	double getPerimeter(void) const; // Umfang
	double getSurface(void) const; // Fläche
	Circle* getBiggestCircle(Circle*);
};
</code></pre>
<p>Und die andere Datei:</p>
<pre><code class="language-cpp">#include &quot;circle.h&quot;

// Konstruktordefinition
Circle::Circle(double radius)
{
	this-&gt;radius = (radius &gt;= 0) ? radius : 0;
}

// Destruktordefinition
Circle::~Circle()
{
	cout &lt;&lt; &quot;A circle is deleted...&quot; &lt;&lt; endl;
}

// Zugriffsmethodendefinitionen
double Circle::getRadius() const
{
	return this-&gt;radius;
}

void Circle::setRadius(double radius) 
{
	this-&gt;radius = (radius &gt;= 0) ? radius : 0;
}

double Circle::getPerimeter() const
{
	return 2 * this-&gt;radius * M_PI;
}

// Methodendefinitionen
double Circle::getSurface() const
{
	return pow(this-&gt;radius, 2) * M_PI;
}

Circle* Circle::getBiggestCircle(Circle* kreis)
{
	if(this-&gt;radius &gt; kreis-&gt;getRadius())
		return this;
	else
		return kreis;
}
</code></pre>
<pre><code class="language-cpp">// main.cpp
#include &quot;circle.h&quot;

int main(void)
{
	return 0;
}
</code></pre>
<p>So das war alles.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2236413</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2236413</guid><dc:creator><![CDATA[Infty]]></dc:creator><pubDate>Sat, 28 Jul 2012 11:30:05 GMT</pubDate></item><item><title><![CDATA[Reply to Fehlermeldung bei Methode on Sat, 28 Jul 2012 11:37:44 GMT]]></title><description><![CDATA[<p>Ich sehe da kein Problem. Bereinige mal das Projekt und kompiliere neu.</p>
<p>Btw:<br />
Für <em>cout</em> solltest du noch den Namensraum angeben. Also <em>std::</em> oder eine using Direktive benutzen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2236415</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2236415</guid><dc:creator><![CDATA[drakon]]></dc:creator><pubDate>Sat, 28 Jul 2012 11:37:44 GMT</pubDate></item><item><title><![CDATA[Reply to Fehlermeldung bei Methode on Sat, 28 Jul 2012 11:40:23 GMT]]></title><description><![CDATA[<p>Mhm ja den Namensraum hatte ich drin, is mir grad nur beim kopieren durch die Lappen gegangen. Mhm ich habe schon xmal neu kompiliert. Ich bin grad irgendwie ratlos. Ich probier mal alle Dateien zu löschen und das Projekt von Grund auf neuzustarten. Aber ich bezweifel dass das was bringt. Wäre komisch wenn es dann ginge</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2236416</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2236416</guid><dc:creator><![CDATA[Infty]]></dc:creator><pubDate>Sat, 28 Jul 2012 11:40:23 GMT</pubDate></item><item><title><![CDATA[Reply to Fehlermeldung bei Methode on Sat, 28 Jul 2012 11:44:23 GMT]]></title><description><![CDATA[<p>Vielleicht ein kryptisches Zeichen. Nimm mal den Kommentar &quot;Fläche&quot; raus(Circle.h).</p>
<p>Schreib &quot;Flaeche&quot;.</p>
<p>wild guess.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2236417</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2236417</guid><dc:creator><![CDATA[Furble Wurble]]></dc:creator><pubDate>Sat, 28 Jul 2012 11:44:23 GMT</pubDate></item><item><title><![CDATA[Reply to Fehlermeldung bei Methode on Sat, 28 Jul 2012 11:57:02 GMT]]></title><description><![CDATA[<p>Also bei mir (MSVC++) hat das kompiliert (abgesehen von dem std und dem M_PI).</p>
<p>Nur neu kompilieren reicht da möglicherweise nicht. Da solltest du alle Dateien, die erzeugt werden löschen und dann nochmal neu kompilieren, damit die neu erzeugt werden.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2236419</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2236419</guid><dc:creator><![CDATA[drakon]]></dc:creator><pubDate>Sat, 28 Jul 2012 11:57:02 GMT</pubDate></item><item><title><![CDATA[Reply to Fehlermeldung bei Methode on Sat, 28 Jul 2012 11:57:32 GMT]]></title><description><![CDATA[<p>Ihr werdet es nicht glauben... o.O Ich habe den Ordner gelöscht wo das Projekt drin war, hab neu angelegt, die Dateien main.cpp, circle.h und circle.cpp auch. Habe diesmal ohne die Methoden für die Berechnung von Umfang und Flächeninhalt gemacht. Es ließ sich ohne Probleme kompilieren. Anschließend habe ich die beiden Methoden, die ich ausgelassen habe noch eingebaut, ging immer noch. Nun in der Methode die mir Sorgen bereitet hat noch ne Ausgabe eingefügt damit ich mir sicher sein kann. Und ja es geht.</p>
<p>Ich habe echt keine Ahnung wie ich das hingekriegt haben könnte o.O</p>
<p>Trotzdem danke an alle die mir geholfen haben.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2236420</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2236420</guid><dc:creator><![CDATA[Infty]]></dc:creator><pubDate>Sat, 28 Jul 2012 11:57:32 GMT</pubDate></item><item><title><![CDATA[Reply to Fehlermeldung bei Methode on Sat, 28 Jul 2012 12:09:06 GMT]]></title><description><![CDATA[<p>Manchmal kommt es vor, dass Objektdateien nicht korrekt mit neuen ersetzt werden und dann können solche Fehler vorkommen. Im Zweifelsfall eben Projekt komplett bereinigen (alle Objektdateien löschen) und dann neu erstellen. Dann sind solche Fehler eben weg.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2236426</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2236426</guid><dc:creator><![CDATA[drakon]]></dc:creator><pubDate>Sat, 28 Jul 2012 12:09:06 GMT</pubDate></item><item><title><![CDATA[Reply to Fehlermeldung bei Methode on Sat, 28 Jul 2012 12:49:17 GMT]]></title><description><![CDATA[<p>Ja, oder einfach &quot;Alles neu erstellen&quot;, das kombiniert Bereinigen und Erstellen soweit ich weiß.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2236436</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2236436</guid><dc:creator><![CDATA[Eisflamme]]></dc:creator><pubDate>Sat, 28 Jul 2012 12:49:17 GMT</pubDate></item></channel></rss>