<?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[Frage zu Function Point...]]></title><description><![CDATA[<p>Hi, ich moechte ein klein Program schreiben, um die Erkennis von Function Point zu ueben. Folgend ist mein Code:</p>
<pre><code class="language-cpp">#include&lt;iostream.h&gt;

class testClass{

private:
	void show1(int num) {cout &lt;&lt; &quot;show1 num=&quot; &lt;&lt; num &lt;&lt; endl;}
	void show2(int num) {cout &lt;&lt; &quot;show2 num=&quot; &lt;&lt; num &lt;&lt; endl;}
	void show3(int num) {cout &lt;&lt; &quot;show3 num=&quot; &lt;&lt; num &lt;&lt; endl;}
	void (*fptr[3])(int);
public:
	void show(int which, int num);
	testClass();
};

void testClass::show(int which, int num){

	*fptr[which-1](int num);        // Hier wird einen Fehler angemeldet.
}

testClass::testClass(){

	fptr[0] = &amp;show1;               // Hier sind anderen drei Fehler.
	fptr[1] = &amp;show2;
	fptr[2] = &amp;show3;
}

void main(){

	int select, num;
	testClass myObject;

	cout &lt;&lt; &quot;select a fuction (1-3) and a number.&quot; &lt;&lt; endl;
	cin &gt;&gt; select;
	cin &gt;&gt; num;
	myObject.show(select, num);

	cin &gt;&gt; select;    // wait for the result
}
</code></pre>
<p>Wechle Fehler habe ich macht? <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="😮"
    /><br />
Danke schoen! <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>
]]></description><link>https://www.c-plusplus.net/forum/topic/117794/frage-zu-function-point</link><generator>RSS for Node</generator><lastBuildDate>Fri, 21 Aug 2026 04:36:07 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/117794.rss" rel="self" type="application/rss+xml"/><pubDate>Thu, 11 Aug 2005 11:20:45 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Frage zu Function Point... on Thu, 11 Aug 2005 11:20:45 GMT]]></title><description><![CDATA[<p>Hi, ich moechte ein klein Program schreiben, um die Erkennis von Function Point zu ueben. Folgend ist mein Code:</p>
<pre><code class="language-cpp">#include&lt;iostream.h&gt;

class testClass{

private:
	void show1(int num) {cout &lt;&lt; &quot;show1 num=&quot; &lt;&lt; num &lt;&lt; endl;}
	void show2(int num) {cout &lt;&lt; &quot;show2 num=&quot; &lt;&lt; num &lt;&lt; endl;}
	void show3(int num) {cout &lt;&lt; &quot;show3 num=&quot; &lt;&lt; num &lt;&lt; endl;}
	void (*fptr[3])(int);
public:
	void show(int which, int num);
	testClass();
};

void testClass::show(int which, int num){

	*fptr[which-1](int num);        // Hier wird einen Fehler angemeldet.
}

testClass::testClass(){

	fptr[0] = &amp;show1;               // Hier sind anderen drei Fehler.
	fptr[1] = &amp;show2;
	fptr[2] = &amp;show3;
}

void main(){

	int select, num;
	testClass myObject;

	cout &lt;&lt; &quot;select a fuction (1-3) and a number.&quot; &lt;&lt; endl;
	cin &gt;&gt; select;
	cin &gt;&gt; num;
	myObject.show(select, num);

	cin &gt;&gt; select;    // wait for the result
}
</code></pre>
<p>Wechle Fehler habe ich macht? <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="😮"
    /><br />
Danke schoen! <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>
]]></description><link>https://www.c-plusplus.net/forum/post/850036</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/850036</guid><dc:creator><![CDATA[cn1h]]></dc:creator><pubDate>Thu, 11 Aug 2005 11:20:45 GMT</pubDate></item><item><title><![CDATA[Reply to Frage zu Function Point... on Thu, 11 Aug 2005 11:24:48 GMT]]></title><description><![CDATA[<p>Schau mal in die FAQ.<br />
Funktionspointer zeigen auf Funktionen,<br />
Funktionen innerhalb von Klassen jedoch nennt man Methoden.<br />
Da ist dann ein kleiner Workaround nötig, um diese dann<br />
über Methodenzeiger aufzurufen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/850039</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/850039</guid><dc:creator><![CDATA[phlox81]]></dc:creator><pubDate>Thu, 11 Aug 2005 11:24:48 GMT</pubDate></item><item><title><![CDATA[Reply to Frage zu Function Point... on Thu, 11 Aug 2005 12:35:06 GMT]]></title><description><![CDATA[<p>und ausserdem, funktionspointer unter C++ sind mit bedacht zu verwenden ...</p>
<p>Besser uebersichtlicher und damit einfacher handhabbar sind virtuelle Methoden ...</p>
<p>nich getestet :</p>
<pre><code class="language-cpp">Class IFunction
{
public:
    virtual ~IFunction(){}
    virtual void Process(int num) = 0;    
};

class Show1 : public IFunction
{
public: 
    Show1(){}
    virtual ~Show1(){}
    virtual void Process(int num)
    {
        std::cout &lt;&lt; &quot;show1 num=&quot; &lt;&lt; num &lt;&lt; std::endl;
    }
};

class Show2 : public IFunction
{
public: 
    Show2(){}
    virtual ~Show2(){}
    virtual void Process(int num)
    {
        std::cout &lt;&lt; &quot;show2 num=&quot; &lt;&lt; num &lt;&lt; std::endl;
    }
};

class Show3 : public IFunction
{
public: 
    Show3(){}
    virtual ~Show3(){}
    virtual void Process(int num)
    {
        std::cout &lt;&lt; &quot;show3 num=&quot; &lt;&lt; num &lt;&lt; std::endl;
    }
};

class TestClass
{
public:
    TestClass():mMapper(3,NULL) // gleich mit 3 Null Zeigern initialisieren 
    {
        // funktionen im Mapper belegen 
        mMapper[0] = &amp;mshow1;
        mMapper[1] = &amp;mshow2;
        mMapper[2] = &amp;mshow3;
    }
    virtual ~TestClass()
    {
    }
    void show(int which, int num)
    {
        // unabgesichert ! 
        mMapper[which]-&gt;Process(num);
    }
private:
    // vir erzeugen die Objecte mal statisch 
    // koennte man auch besser dynamisch ueber ne objectfabrik machen .... 
    Show1 mshow1;
    Show2 mshow2;
    Show2 mshow3;

    // und natuerlich der Mapper als vector
    // spaeter koennt man das noch dynamischer ausbauen mit ner map etc ... 
    // vector statt statischem Array, weil das initialisieren besser geht ... und die Allokation-geschwindigkeit beim einmaligen anlegen nich so die rolle spielt
    std::vector&lt;IFunction *&gt; mMapper;
};
</code></pre>
<p>Faend ich besser lesbar und vor allem auch erweiterbarer ...<br />
Gibt aber auch viele C-Juengerer in der C++ Welt, denen an der stelle der Aufwand, die 4 zusaetzlichen klassen zu schreiben, zu hoch ist ...<br />
Im binaercode duerfter der aufwand relativ gleich sein ...</p>
<p>Ciao ...</p>
]]></description><link>https://www.c-plusplus.net/forum/post/850109</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/850109</guid><dc:creator><![CDATA[RHBaum]]></dc:creator><pubDate>Thu, 11 Aug 2005 12:35:06 GMT</pubDate></item><item><title><![CDATA[Reply to Frage zu Function Point... on Thu, 11 Aug 2005 23:43:58 GMT]]></title><description><![CDATA[<p>Danke schoen! <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/850491</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/850491</guid><dc:creator><![CDATA[cn1h]]></dc:creator><pubDate>Thu, 11 Aug 2005 23:43:58 GMT</pubDate></item></channel></rss>