<?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[Funktionszeiger in Klassen]]></title><description><![CDATA[<p>Hallo Leute <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f642.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--slightly_smiling_face"
      title=":)"
      alt="🙂"
    /> ,</p>
<p>ich hab hier ein riessen Prob mit Funktionszeigern in einer Klasse.<br />
Bevor ich losleg wollte ich noch sagen, dass mir der Sinn bzw. der Unsinn meines kleinen Progs schon klar ist, ich weiss auch dass ich auf ganz anderem Wege zum Ziel kommen könnte aber der Code dient einzig und allein zum lernen !.</p>
<p>Als erses hab ich einnkleines Prog ohne Klassen mit einem Funktionszeiger gebastelt, welches auch wunder bar funktioniert <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f60b.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--face_savoring_food"
      title=":yum:"
      alt="😋"
    /> .<br />
Man muss der Fnkt berechne nur 3 Parameter übergeben 2 Integers zum rechnen und das was damit gemacht werden soll (addieren, multiplizieren ...),<br />
int(*waehle)(int, int) ist der Fnkt-Zeiger der dann auf die auszuführende Fnkt zeigt !</p>
<p>Hier mal der funktionierende Code:</p>
<pre><code class="language-cpp">#include &lt;iostream&gt;

using namespace std;

	int berechne(int a, int b, int(*waehle)(int, int));

	int addiere(int a, int b);
	int multipliziere(int a, int b);
	int subtrahiere(int a, int b);

void main()
{

	int Z;
	int Y;
	int X;

	X = berechne(10, 10,multipliziere);
	cout &lt;&lt; &quot;Das Ergebnis der Multiplikation ist :	&quot; &lt;&lt; X &lt;&lt; endl &lt;&lt; endl &lt;&lt; endl;

	Y = berechne(20, 10, subtrahiere);
	cout &lt;&lt; &quot;Das Ergebnis der Subtraktion ist :	&quot; &lt;&lt; Y &lt;&lt; endl &lt;&lt; endl &lt;&lt; endl;

	Z = berechne(20, 10, addiere);
	cout &lt;&lt; &quot;Das Ergebnis der Addition ist :		&quot; &lt;&lt; Z &lt;&lt; endl &lt;&lt; endl &lt;&lt; endl;

}

int addiere(int a, int b)
{
	return a + b;
}

int multipliziere(int a, int b)
{
	return a * b;
}

int subtrahiere(int a, int b)
{
	return a - b;
}

int berechne(int a, int b, int(*waehle)(int a, int b))
{
	return waehle(a, b);
}
</code></pre>
<p>So jetzt hab ich versucht das ganze in ne Klasse zu werfen.<br />
Das Funktioniert leider nicht <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f61e.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--disappointed_face"
      title=":("
      alt="😞"
    /> , ich bekomme folgenden Fehler :<br />
<img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f44e.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--thumbs_down"
      title=":-1:"
      alt="👎"
    /> error C2065: 'multipliziere' : nichtdeklarierter Bezeichner <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f44e.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--thumbs_down"
      title=":-1:"
      alt="👎"
    /></p>
<p>Hier der Code:</p>
<pre><code class="language-cpp">#include &lt;iostream&gt;

using namespace std;

class cTest
{
	public:

		cTest() {}
		~cTest(){}

		int addiere(int a, int b)
		{
			return a + b;
		}

		int multipliziere(int a, int b)
		{
			return a * b;
		}

		int subtrahiere(int a, int b)
		{
			return a - b;
		}	

		int berechne(int a, int b, int(*waehle)(int a, int b))
		{
			return waehle(a, b);
		}

};

void main()
{
	cTest objTest;

// 	
// 	int Z;
// 	int Y;	
// 	
// 	Y = berechne(20, 10, subtrahiere);
// 	cout &lt;&lt; &quot;Das Ergebnis der Subtraktion ist :	&quot; &lt;&lt; Y &lt;&lt; endl &lt;&lt; endl &lt;&lt; endl;
// 	
// 	Z = berechne(20, 10, addiere);
// 	cout &lt;&lt; &quot;Das Ergebnis der Addition ist :		&quot; &lt;&lt; Z &lt;&lt; endl &lt;&lt; endl &lt;&lt; endl;

	int X;
	X = objTest.berechne(10, 10,multipliziere);
	cout &lt;&lt; &quot;Das Ergebnis der Multiplikation ist :	&quot; &lt;&lt; X &lt;&lt; endl &lt;&lt; endl &lt;&lt; endl;
}
</code></pre>
<p>Was ich mir unter Anderem überlegt habe ist : Die Klasse enthält einen Zeiger,<br />
also muss ich eine tiefe Kopier machen <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="😕"
    /> ???<br />
Wenn ja wie <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="😕"
    /> ?<br />
Bzw. wie krieg ich den Code mit der Klasse überhaupt zum laufen <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="😕"
    /> ?<br />
Bitte helft mir, mir raucht echt der Kopf <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f62e.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--face_with_open_mouth"
      title=":open_mouth:"
      alt="😮"
    /> !</p>
<p>Vielen Dank schon mal für eure Mühe <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f609.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--winking_face"
      title=";)"
      alt="😉"
    /><br />
Shadow Eater</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/152292/funktionszeiger-in-klassen</link><generator>RSS for Node</generator><lastBuildDate>Sun, 06 Sep 2026 21:48:11 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/152292.rss" rel="self" type="application/rss+xml"/><pubDate>Wed, 05 Jul 2006 07:33:17 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Funktionszeiger in Klassen on Wed, 05 Jul 2006 07:33:17 GMT]]></title><description><![CDATA[<p>Hallo Leute <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f642.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--slightly_smiling_face"
      title=":)"
      alt="🙂"
    /> ,</p>
<p>ich hab hier ein riessen Prob mit Funktionszeigern in einer Klasse.<br />
Bevor ich losleg wollte ich noch sagen, dass mir der Sinn bzw. der Unsinn meines kleinen Progs schon klar ist, ich weiss auch dass ich auf ganz anderem Wege zum Ziel kommen könnte aber der Code dient einzig und allein zum lernen !.</p>
<p>Als erses hab ich einnkleines Prog ohne Klassen mit einem Funktionszeiger gebastelt, welches auch wunder bar funktioniert <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f60b.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--face_savoring_food"
      title=":yum:"
      alt="😋"
    /> .<br />
Man muss der Fnkt berechne nur 3 Parameter übergeben 2 Integers zum rechnen und das was damit gemacht werden soll (addieren, multiplizieren ...),<br />
int(*waehle)(int, int) ist der Fnkt-Zeiger der dann auf die auszuführende Fnkt zeigt !</p>
<p>Hier mal der funktionierende Code:</p>
<pre><code class="language-cpp">#include &lt;iostream&gt;

using namespace std;

	int berechne(int a, int b, int(*waehle)(int, int));

	int addiere(int a, int b);
	int multipliziere(int a, int b);
	int subtrahiere(int a, int b);

void main()
{

	int Z;
	int Y;
	int X;

	X = berechne(10, 10,multipliziere);
	cout &lt;&lt; &quot;Das Ergebnis der Multiplikation ist :	&quot; &lt;&lt; X &lt;&lt; endl &lt;&lt; endl &lt;&lt; endl;

	Y = berechne(20, 10, subtrahiere);
	cout &lt;&lt; &quot;Das Ergebnis der Subtraktion ist :	&quot; &lt;&lt; Y &lt;&lt; endl &lt;&lt; endl &lt;&lt; endl;

	Z = berechne(20, 10, addiere);
	cout &lt;&lt; &quot;Das Ergebnis der Addition ist :		&quot; &lt;&lt; Z &lt;&lt; endl &lt;&lt; endl &lt;&lt; endl;

}

int addiere(int a, int b)
{
	return a + b;
}

int multipliziere(int a, int b)
{
	return a * b;
}

int subtrahiere(int a, int b)
{
	return a - b;
}

int berechne(int a, int b, int(*waehle)(int a, int b))
{
	return waehle(a, b);
}
</code></pre>
<p>So jetzt hab ich versucht das ganze in ne Klasse zu werfen.<br />
Das Funktioniert leider nicht <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f61e.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--disappointed_face"
      title=":("
      alt="😞"
    /> , ich bekomme folgenden Fehler :<br />
<img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f44e.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--thumbs_down"
      title=":-1:"
      alt="👎"
    /> error C2065: 'multipliziere' : nichtdeklarierter Bezeichner <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f44e.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--thumbs_down"
      title=":-1:"
      alt="👎"
    /></p>
<p>Hier der Code:</p>
<pre><code class="language-cpp">#include &lt;iostream&gt;

using namespace std;

class cTest
{
	public:

		cTest() {}
		~cTest(){}

		int addiere(int a, int b)
		{
			return a + b;
		}

		int multipliziere(int a, int b)
		{
			return a * b;
		}

		int subtrahiere(int a, int b)
		{
			return a - b;
		}	

		int berechne(int a, int b, int(*waehle)(int a, int b))
		{
			return waehle(a, b);
		}

};

void main()
{
	cTest objTest;

// 	
// 	int Z;
// 	int Y;	
// 	
// 	Y = berechne(20, 10, subtrahiere);
// 	cout &lt;&lt; &quot;Das Ergebnis der Subtraktion ist :	&quot; &lt;&lt; Y &lt;&lt; endl &lt;&lt; endl &lt;&lt; endl;
// 	
// 	Z = berechne(20, 10, addiere);
// 	cout &lt;&lt; &quot;Das Ergebnis der Addition ist :		&quot; &lt;&lt; Z &lt;&lt; endl &lt;&lt; endl &lt;&lt; endl;

	int X;
	X = objTest.berechne(10, 10,multipliziere);
	cout &lt;&lt; &quot;Das Ergebnis der Multiplikation ist :	&quot; &lt;&lt; X &lt;&lt; endl &lt;&lt; endl &lt;&lt; endl;
}
</code></pre>
<p>Was ich mir unter Anderem überlegt habe ist : Die Klasse enthält einen Zeiger,<br />
also muss ich eine tiefe Kopier machen <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="😕"
    /> ???<br />
Wenn ja wie <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="😕"
    /> ?<br />
Bzw. wie krieg ich den Code mit der Klasse überhaupt zum laufen <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="😕"
    /> ?<br />
Bitte helft mir, mir raucht echt der Kopf <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f62e.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--face_with_open_mouth"
      title=":open_mouth:"
      alt="😮"
    /> !</p>
<p>Vielen Dank schon mal für eure Mühe <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f609.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--winking_face"
      title=";)"
      alt="😉"
    /><br />
Shadow Eater</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1091549</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1091549</guid><dc:creator><![CDATA[ShadowEater]]></dc:creator><pubDate>Wed, 05 Jul 2006 07:33:17 GMT</pubDate></item><item><title><![CDATA[Reply to Funktionszeiger in Klassen on Wed, 05 Jul 2006 08:03:35 GMT]]></title><description><![CDATA[<p>Wenn du Klassenmethoden verwenden willst, dann muß du die entsprechende Klasse dafür angeben:</p>
<pre><code class="language-cpp">int berechne(int a, int b, int (cTest::*waehle)(int a, int b))
{
    return (this-&gt;*waehle)(a, b); // hier muß ein Klassenzeiger (this) angegeben werden
}
</code></pre>
<p>Und Aufruf dann mit:</p>
<pre><code class="language-cpp">int X = objTest.berechne(10, 10, cTest::multipliziere); // hier Klasse angegeben
</code></pre>
<p>Alternativ kannst du auch die Klassenmethoden als &quot;static&quot; deklarieren, dann entspricht das einfachen Funktionszeigern.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1091568</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1091568</guid><dc:creator><![CDATA[Th]]></dc:creator><pubDate>Wed, 05 Jul 2006 08:03:35 GMT</pubDate></item><item><title><![CDATA[Reply to Funktionszeiger in Klassen on Wed, 05 Jul 2006 08:11:09 GMT]]></title><description><![CDATA[<p>Hi Th,</p>
<p>danke für Deine schnelle Antwort, ich hab das jetzt so implementiert:</p>
<pre><code class="language-cpp">#include &lt;iostream&gt;

using namespace std;

class cTest
{
	public:

		cTest() {}
		~cTest(){}

		int addiere(int a, int b)
		{
			return a + b;
		}

		int multipliziere(int a, int b)
		{
			return a * b;
		}

		int subtrahiere(int a, int b)
		{
			return a - b;
		}	

//		int berechne(int a, int b, int(*waehle)(int a, int b))
//		{
//			return waehle(a, b);
//		}
		int berechne(int a, int b, int (cTest::*waehle)(int a, int b)) 
		{ 
			return (*this-&gt;waehle)(a, b); // hier muß ein Klassenzeiger (this) angegeben werden 
		} 
};

void main()
{
	cTest objTest;

// 	
// 	int Z;
// 	int Y;	
// 	
// 	Y = berechne(20, 10, subtrahiere);
// 	cout &lt;&lt; &quot;Das Ergebnis der Subtraktion ist :	&quot; &lt;&lt; Y &lt;&lt; endl &lt;&lt; endl &lt;&lt; endl;
// 	
// 	Z = berechne(20, 10, addiere);
// 	cout &lt;&lt; &quot;Das Ergebnis der Addition ist :		&quot; &lt;&lt; Z &lt;&lt; endl &lt;&lt; endl &lt;&lt; endl;

	int X;
	X = objTest.berechne(10, 10, cTest::multipliziere);
	// X = objTest.berechne(10, 10,multipliziere);
	cout &lt;&lt; &quot;Das Ergebnis der Multiplikation ist :	&quot; &lt;&lt; X &lt;&lt; endl &lt;&lt; endl &lt;&lt; endl;
}
</code></pre>
<p>krieg jetzt aber leider den Fehler:</p>
<p>error C2039: 'waehle' : Ist kein Element von 'cTest'</p>
<p><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="😕"
    /> ShadowEater <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/1091581</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1091581</guid><dc:creator><![CDATA[ShadowEater]]></dc:creator><pubDate>Wed, 05 Jul 2006 08:11:09 GMT</pubDate></item><item><title><![CDATA[Reply to Funktionszeiger in Klassen on Wed, 05 Jul 2006 08:23:28 GMT]]></title><description><![CDATA[<p>Hi Th,</p>
<p>ich hab noch n bissl rumgespielt, jetzt gehts :</p>
<pre><code class="language-cpp">#include &lt;iostream&gt;

using namespace std;

class cTest
{
    public:

        cTest() {}
        ~cTest(){}

        static int addiere(int a, int b)
        {
            return a + b;
        }

        static int multipliziere(int a, int b)
        {
            return a * b;
        }

        static int subtrahiere(int a, int b)
        {
            return a - b;
        }

        int berechne(int a, int b, int(*waehle)(int a, int b))
        {
            return waehle(a, b);
        }

};

void main()
{
    cTest objTest;

//
//     int Z;
//     int Y;
//
//     Y = berechne(20, 10, subtrahiere);
//     cout &lt;&lt; &quot;Das Ergebnis der Subtraktion ist :    &quot; &lt;&lt; Y &lt;&lt; endl &lt;&lt; endl &lt;&lt; endl;
//
//     Z = berechne(20, 10, addiere);
//     cout &lt;&lt; &quot;Das Ergebnis der Addition ist :        &quot; &lt;&lt; Z &lt;&lt; endl &lt;&lt; endl &lt;&lt; endl;

    int X;
    X = objTest.berechne(10, 10,cTest::multipliziere);
    cout &lt;&lt; &quot;Das Ergebnis der Multiplikation ist :    &quot; &lt;&lt; X &lt;&lt; endl &lt;&lt; endl &lt;&lt; endl;
}
</code></pre>
<p>Ich verstehe nicht so ganz warum ich nochmal explizit darauf hinweisen muss, dass multipliziere aus cTest kommt(cTest::multipliziere) ich hab doch mein Objekt objTest vom Typ cTest bekannt gemacht (cTest objTest) und berechne ist doch Memberfunktion <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>
<p>Bye,<br />
ShadowEater<br />
!</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1091584</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1091584</guid><dc:creator><![CDATA[ShadowEater]]></dc:creator><pubDate>Wed, 05 Jul 2006 08:23:28 GMT</pubDate></item><item><title><![CDATA[Reply to Funktionszeiger in Klassen on Wed, 05 Jul 2006 08:50:42 GMT]]></title><description><![CDATA[<p>In Deinem ersten Versuch hast Du falsch abgeschrieben:</p>
<pre><code class="language-cpp">(this-&gt;*waehle) // statt
(*this-&gt;waehle)
</code></pre>
<p>Im zweiten Fall erwartest Du irgendeine beliebige Funktion int(*)(int, int), die muss doch nicht automatisch in CTest liegen. Und da die statics in einer Klasse liegen musst Du sie halt qualifizieren.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1091598</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1091598</guid><dc:creator><![CDATA[LordJaxom]]></dc:creator><pubDate>Wed, 05 Jul 2006 08:50:42 GMT</pubDate></item><item><title><![CDATA[Reply to Funktionszeiger in Klassen on Wed, 05 Jul 2006 09:05:29 GMT]]></title><description><![CDATA[<p>Danke, ich glaub ich habs verstanden <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f609.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--winking_face"
      title=";)"
      alt="😉"
    /> !<br />
Git static einfach an dass alle Funktionen Member sind?</p>
<p>ShadowEater</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1091620</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1091620</guid><dc:creator><![CDATA[ShadowEater]]></dc:creator><pubDate>Wed, 05 Jul 2006 09:05:29 GMT</pubDate></item><item><title><![CDATA[Reply to Funktionszeiger in Klassen on Wed, 05 Jul 2006 09:16:57 GMT]]></title><description><![CDATA[<p>Nein, Member sind sie weil sie zu einer Klasse gehören.</p>
<p>Static bedeutet, dass Du kein Objekt brauchst um diese Funktion aufzurufen oder anzusprechen. Du hast dann natürlich auch keinen this-Zeiger in diesen Funktionen.</p>
<pre><code class="language-cpp">Klasse::test() // funktioniert nur mit statischer Memberfunktion

Klasse objekt;
objekt.test() // funktioniert mit nichtstatischer Memberfunktion
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1091629</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1091629</guid><dc:creator><![CDATA[LordJaxom]]></dc:creator><pubDate>Wed, 05 Jul 2006 09:16:57 GMT</pubDate></item><item><title><![CDATA[Reply to Funktionszeiger in Klassen on Wed, 05 Jul 2006 09:24:34 GMT]]></title><description><![CDATA[<p>Gut, soweit klar, könnte man sagen dass man sooft wie möglich seine Fnkt static halten sollte ?<br />
Oder gibt es da Einschränkungen ?</p>
<p>Bye,<br />
ShadowEater</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1091634</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1091634</guid><dc:creator><![CDATA[ShadowEater]]></dc:creator><pubDate>Wed, 05 Jul 2006 09:24:34 GMT</pubDate></item><item><title><![CDATA[Reply to Funktionszeiger in Klassen on Wed, 05 Jul 2006 10:28:03 GMT]]></title><description><![CDATA[<p>Hi ich bins nochmal <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f642.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--slightly_smiling_face"
      title=":)"
      alt="🙂"
    /> ,</p>
<p>danke Lord Jaxom umd Th <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="👍"
    /> für eure Hilfe <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="👍"
    /> , damit ihr seht dass es nicht vergebens war hier nochmal der Code funktionierend <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>Es werden 2 ints verglichen : ist a &gt; b ==&lt; subtrahiere , ist a &lt; b ==&gt; addiere und sind se == dann multipliziere. Die Auswahl läuft über nen Funktionszeiger<br />
Vielleicht könnt ihrs als irgendwie gebrauchen als Anschauungsmaterial oder so <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f609.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--winking_face"
      title=";-)"
      alt="😉"
    /> :</p>
<pre><code class="language-cpp">#include &lt;iostream&gt;

using namespace std;

class cTest
{
public:

	cTest() {}
	~cTest(){}

	static int addiere(int a, int b)
	{
		return a + b;
	}

	static int multipliziere(int a, int b)
	{
		return a * b;
	}

	static int subtrahiere(int a, int b)
	{
		return a - b;
	}

	static berechne(int a, int b, int(*waehle)(int a, int b))
	{
		return waehle(a, b);
	}

	static checkInput(int a, int b)
	{

		if ( a &gt; b)
		{
			cout &lt;&lt; berechne(a, b, subtrahiere)&lt;&lt; endl &lt;&lt; endl;
		} 

		if ( a &lt; b)
		{
			cout &lt;&lt; berechne(a, b, addiere)&lt;&lt; endl &lt;&lt; endl &lt;&lt; endl;
		}
		if (a == b)
		{
			cout &lt;&lt; berechne(a, b, multipliziere)&lt;&lt; endl &lt;&lt; endl;
		}

	}

};

void main()
{
    cTest objTest;
	objTest.checkInput(5, 5);
}
</code></pre>
<p>P.S.: Kann ich den If....... teil über ne geschickte switch Anweisung besser formulieren ?</p>
<p>Bye<br />
ShadowEater <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f609.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--winking_face"
      title=";)"
      alt="😉"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1091668</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1091668</guid><dc:creator><![CDATA[ShadowEater]]></dc:creator><pubDate>Wed, 05 Jul 2006 10:28:03 GMT</pubDate></item><item><title><![CDATA[Reply to Funktionszeiger in Klassen on Wed, 05 Jul 2006 10:29:42 GMT]]></title><description><![CDATA[<p>Hallo</p>
<p>static setzt du ein, wenn du es brauchst. Es gibt eine klare Abgrenzung für den Einsatz : wenn du keine andern nichtstatischen Klassenmember aufrufen must, die fragliche Methode aber logisch in den Bereich der Klasse gehört.</p>
<p>bis bald<br />
akari</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1091671</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1091671</guid><dc:creator><![CDATA[akari]]></dc:creator><pubDate>Wed, 05 Jul 2006 10:29:42 GMT</pubDate></item><item><title><![CDATA[Reply to Funktionszeiger in Klassen on Wed, 05 Jul 2006 10:50:23 GMT]]></title><description><![CDATA[<blockquote>
<p>P.S.: Kann ich den If....... teil über ne geschickte switch Anweisung besser formulieren ?</p>
</blockquote>
<p>Nein, ein switch geht nicht, aber du solltest &quot;else if&quot; verwenden, da sich die drei Anweisungen ja ausschließen</p>
<pre><code class="language-cpp">if(a &gt; b)
  ...
else if(a &lt; b)
  ...
else // a==b
  ...
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1091680</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1091680</guid><dc:creator><![CDATA[Th]]></dc:creator><pubDate>Wed, 05 Jul 2006 10:50:23 GMT</pubDate></item></channel></rss>