<?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[Sorry, aber immernoch das Problem]]></title><description><![CDATA[<p>Ich bin es schon wieder. Sorry, aber ich habe jetzt echt alles versucht und ich hänge immernoch an diesem blöden Case. Allerdings ist die Herausforderung diesemal größer, weil ich ein Projekt habe mit einer main.cpp und einer Algorithm.cpp und jeweiligen Header Files.<br />
Aufgaben der main:<br />
Klasse Controller die verschiedene Daten von extern rein bekommt (z.B. int AlgoId, int Mode,...).<br />
Mit diesen verschiedenen sachen muss ich jetz in erster Linie schauen, welcher Algorithmus verwendet wird, so dass dieser in der Algorithm.h ordentlich aufgerufen wird und verwendet werden kann.<br />
Aufgaben der Algorithm:</p>
<p>Beinhaltet eine BaseKlasse Algorithm von der verschiedene Algorithmen abgeleitet sind.Die Hauptfunktion in Algorithm ist identify(). diese ist virtuell und wird in den verschiedenen abgeleitetet Algorithmen überschrieben.</p>
<p>Nun will ich von meiner Main aus den entsprechenden Algorithmus aufrufen.<br />
Was ich mir bisher zusammengeflickt habe:</p>
<p>main.h:</p>
<pre><code class="language-cpp">#ifndef main_h_included
#define main_h_included

#include &lt;stdio.h&gt;
#include &lt;iostream&gt;
#include &lt;string&gt;
#include &quot;Algorithm.h&quot;

class Controller{

public:
  /// default constructor
  Controller();

  //Controller  Konstruktor
  void controller (int mode, int AlgoId){
  int mode = mode;
  int AlgoId = algoId;
  algoId = 1;

  };
  //Identifiziert den Algorithmus 
  enum{yuv,nccf,sift} algoId; 
  static Controller* getAlgo(algoId id);

  /// destructor
  virtual ~Controller();
};
#endif
</code></pre>
<p>main.cpp:</p>
<pre><code class="language-cpp">#include &quot;main.h&quot;

Controller::Controller()
{};

Algo* Controller::getAlgo(algoId id)
{
  Algo* al = NULL;
  switch(id)
  {
  case 0:
    al = new YUV();
    break;
  case 1:
    al =  new NCCF();
    break;
  case 2:
    al = new SIFT();
    break;
  }
  return al;
} ; 

Controller::~Controller()
{};
</code></pre>
<p>Ich weiß echt nicht mehr weiter, was ich falsch mache. Ist mein Gedankengang überhaupt richtig?</p>
<p>Vielen Dank für eure Hilfe<br />
A</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/136989/sorry-aber-immernoch-das-problem</link><generator>RSS for Node</generator><lastBuildDate>Sat, 29 Aug 2026 15:54:11 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/136989.rss" rel="self" type="application/rss+xml"/><pubDate>Tue, 14 Feb 2006 16:55:22 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Sorry, aber immernoch das Problem on Tue, 14 Feb 2006 16:55:22 GMT]]></title><description><![CDATA[<p>Ich bin es schon wieder. Sorry, aber ich habe jetzt echt alles versucht und ich hänge immernoch an diesem blöden Case. Allerdings ist die Herausforderung diesemal größer, weil ich ein Projekt habe mit einer main.cpp und einer Algorithm.cpp und jeweiligen Header Files.<br />
Aufgaben der main:<br />
Klasse Controller die verschiedene Daten von extern rein bekommt (z.B. int AlgoId, int Mode,...).<br />
Mit diesen verschiedenen sachen muss ich jetz in erster Linie schauen, welcher Algorithmus verwendet wird, so dass dieser in der Algorithm.h ordentlich aufgerufen wird und verwendet werden kann.<br />
Aufgaben der Algorithm:</p>
<p>Beinhaltet eine BaseKlasse Algorithm von der verschiedene Algorithmen abgeleitet sind.Die Hauptfunktion in Algorithm ist identify(). diese ist virtuell und wird in den verschiedenen abgeleitetet Algorithmen überschrieben.</p>
<p>Nun will ich von meiner Main aus den entsprechenden Algorithmus aufrufen.<br />
Was ich mir bisher zusammengeflickt habe:</p>
<p>main.h:</p>
<pre><code class="language-cpp">#ifndef main_h_included
#define main_h_included

#include &lt;stdio.h&gt;
#include &lt;iostream&gt;
#include &lt;string&gt;
#include &quot;Algorithm.h&quot;

class Controller{

public:
  /// default constructor
  Controller();

  //Controller  Konstruktor
  void controller (int mode, int AlgoId){
  int mode = mode;
  int AlgoId = algoId;
  algoId = 1;

  };
  //Identifiziert den Algorithmus 
  enum{yuv,nccf,sift} algoId; 
  static Controller* getAlgo(algoId id);

  /// destructor
  virtual ~Controller();
};
#endif
</code></pre>
<p>main.cpp:</p>
<pre><code class="language-cpp">#include &quot;main.h&quot;

Controller::Controller()
{};

Algo* Controller::getAlgo(algoId id)
{
  Algo* al = NULL;
  switch(id)
  {
  case 0:
    al = new YUV();
    break;
  case 1:
    al =  new NCCF();
    break;
  case 2:
    al = new SIFT();
    break;
  }
  return al;
} ; 

Controller::~Controller()
{};
</code></pre>
<p>Ich weiß echt nicht mehr weiter, was ich falsch mache. Ist mein Gedankengang überhaupt richtig?</p>
<p>Vielen Dank für eure Hilfe<br />
A</p>
]]></description><link>https://www.c-plusplus.net/forum/post/994130</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/994130</guid><dc:creator><![CDATA[Alex179]]></dc:creator><pubDate>Tue, 14 Feb 2006 16:55:22 GMT</pubDate></item><item><title><![CDATA[Reply to Sorry, aber immernoch das Problem on Tue, 14 Feb 2006 18:38:08 GMT]]></title><description><![CDATA[<p>Du magst nicht zufällig damit rausrücken wo das Problem / der Fehler / ... ist?</p>
<p>EDIT: Oder sollen wir Deinen Code analysieren und hinterher sagen &quot;ja, haste gut gemacht&quot; oder &quot;nein, da und da ist was falsch&quot;?</p>
<p>Nochmal EDIT: Ich sehe schonmal dass Du eine enum hast für die id, im Switch aber integer statt der enum-Konstanten abfragst.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/994212</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/994212</guid><dc:creator><![CDATA[LordJaxom]]></dc:creator><pubDate>Tue, 14 Feb 2006 18:38:08 GMT</pubDate></item><item><title><![CDATA[Reply to Sorry, aber immernoch das Problem on Wed, 15 Feb 2006 08:58:47 GMT]]></title><description><![CDATA[<p>Alex179 schrieb:</p>
<blockquote>
<pre><code class="language-cpp">class Controller{
public:
  ..
  //Controller  Konstruktor
  void controller (int mode, int AlgoId){
  int mode = mode;
  int AlgoId = algoId;
  algoId = 1;
  }
  ..
};
</code></pre>
</blockquote>
<p>Kleiner Tip: Das da ist <strong>kein</strong> Konstruktor (sondern eine Memberfunktion, die zufällig einen ähnlichen Namen hat wie die Klasse), außerdem kann sie nicht funktionieren, weil sie zwei verschiedene &quot;mode&quot; und &quot;AlgoID&quot; Variablen deklariert.</p>
<p>Edit: Und ein kleiner Fehler, der sich vermutlich irgendwo unterwegs eingeschlichen hat - die Enum-Deklaration müsste andersrum sein: &quot;enum AlgoID{yuv,nccf,sift};&quot; (andersherum deklarierst du eine Variable &quot;AlgoID&quot; mit einem anonymen enum-Typ)</p>
]]></description><link>https://www.c-plusplus.net/forum/post/994491</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/994491</guid><dc:creator><![CDATA[CStoll]]></dc:creator><pubDate>Wed, 15 Feb 2006 08:58:47 GMT</pubDate></item></channel></rss>