<?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[Verbindung zwischen Klassen?]]></title><description><![CDATA[<p>Hallo!</p>
<pre><code class="language-cpp">class Interface
{
private:
    Basis* commands_[3];
};

class Basis
{
protected:
  Interface&amp; i_;

public:
  Basis();
  ~Basis();
 virtual char* getName() =0; 
};

class Ableitung:public Basis
{
public:
  Ableitung() {cout&lt;&lt;&quot;Konstruktor Ableitung1&quot;&lt;&lt;endl;};
  ~Ableitung() {cout&lt;&lt;&quot;Destruktor Ableitung1&quot;&lt;&lt;endl;};
  char* getName() {return &quot;Ableitung&quot;;};
};

class Ableitung2:public Basis
{
public:
  Ableitung2(){cout&lt;&lt;&quot;Konstruktor Ableitung2&quot;&lt;&lt;endl;};
  ~Ableitung2(){cout&lt;&lt;&quot;Destruktor Ableitung2&quot;&lt;&lt;endl;};
  char* getName() {return &quot;Ableitung2&quot;;};
};
</code></pre>
<p>Hier sind 3 Klassen gegeben wobei sich in der ersten ein Array befindet wo alle Instanzen der Abgeleiten klassen befinden sollen! Aber wie kann ich hier zwischen den Klassen verbinden?</p>
<p>Bin für jede Hilfe dankbar!</p>
<p>mfg</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/237740/verbindung-zwischen-klassen</link><generator>RSS for Node</generator><lastBuildDate>Wed, 23 Sep 2026 09:33:54 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/237740.rss" rel="self" type="application/rss+xml"/><pubDate>Wed, 01 Apr 2009 09:33:50 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Verbindung zwischen Klassen? on Wed, 01 Apr 2009 09:33:50 GMT]]></title><description><![CDATA[<p>Hallo!</p>
<pre><code class="language-cpp">class Interface
{
private:
    Basis* commands_[3];
};

class Basis
{
protected:
  Interface&amp; i_;

public:
  Basis();
  ~Basis();
 virtual char* getName() =0; 
};

class Ableitung:public Basis
{
public:
  Ableitung() {cout&lt;&lt;&quot;Konstruktor Ableitung1&quot;&lt;&lt;endl;};
  ~Ableitung() {cout&lt;&lt;&quot;Destruktor Ableitung1&quot;&lt;&lt;endl;};
  char* getName() {return &quot;Ableitung&quot;;};
};

class Ableitung2:public Basis
{
public:
  Ableitung2(){cout&lt;&lt;&quot;Konstruktor Ableitung2&quot;&lt;&lt;endl;};
  ~Ableitung2(){cout&lt;&lt;&quot;Destruktor Ableitung2&quot;&lt;&lt;endl;};
  char* getName() {return &quot;Ableitung2&quot;;};
};
</code></pre>
<p>Hier sind 3 Klassen gegeben wobei sich in der ersten ein Array befindet wo alle Instanzen der Abgeleiten klassen befinden sollen! Aber wie kann ich hier zwischen den Klassen verbinden?</p>
<p>Bin für jede Hilfe dankbar!</p>
<p>mfg</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1689175</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1689175</guid><dc:creator><![CDATA[hanni6al]]></dc:creator><pubDate>Wed, 01 Apr 2009 09:33:50 GMT</pubDate></item><item><title><![CDATA[Reply to Verbindung zwischen Klassen? on Wed, 01 Apr 2009 11:28:00 GMT]]></title><description><![CDATA[<p>Du drückst dich leider nicht richtig aus. Weiß daher nicht wirklich was du willst. Aber ich versuche mal anhand des COdes zu erraten, wo dein Problem liegt. Du willst anscheinen einfach auf die commands zugreifen? Dzu mußt du natürlich eine Zugriffsmethode definieren:</p>
<pre><code class="language-cpp">class Interface
{
private:
    Basis* commands_[3];

proteced:
   // ob es public sein soll, kann man sich streiten.
   Basis* get_commands()
   {
        return commands_;
   }
};
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1689217</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1689217</guid><dc:creator><![CDATA[Bulli]]></dc:creator><pubDate>Wed, 01 Apr 2009 11:28:00 GMT</pubDate></item><item><title><![CDATA[Reply to Verbindung zwischen Klassen? on Wed, 01 Apr 2009 11:29:45 GMT]]></title><description><![CDATA[<p>Sorry, muß <em>protected</em> heißen!<br />
Jedenfalls kannst du dann von den vererbenden Klassen aus auf die Commands in Interface zugreifen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1689218</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1689218</guid><dc:creator><![CDATA[Bulli]]></dc:creator><pubDate>Wed, 01 Apr 2009 11:29:45 GMT</pubDate></item><item><title><![CDATA[Reply to Verbindung zwischen Klassen? on Wed, 01 Apr 2009 12:47:48 GMT]]></title><description><![CDATA[<p>Also Danke erstmal aber das ist nicht ganz wie ich es gemeint hab! Ich bekomme immer so eine eigenartige Fehlermeldung bezüglich</p>
<pre><code class="language-cpp">Basis* commands_[3];
</code></pre>
<pre><code class="language-cpp">Interface&amp; i_;
</code></pre>
<p>Und zwar es fehlt ; vor * da fehlt aber kein ; niergends!</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1689251</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1689251</guid><dc:creator><![CDATA[hanni6al]]></dc:creator><pubDate>Wed, 01 Apr 2009 12:47:48 GMT</pubDate></item><item><title><![CDATA[Reply to Verbindung zwischen Klassen? on Wed, 01 Apr 2009 12:55:49 GMT]]></title><description><![CDATA[<p>hanni6al schrieb:</p>
<blockquote>
<p>Also Danke erstmal aber das ist nicht ganz wie ich es gemeint hab! Ich bekomme immer so eine eigenartige Fehlermeldung bezüglich</p>
<pre><code class="language-cpp">Basis* commands_[3];
</code></pre>
<pre><code class="language-cpp">Interface&amp; i_;
</code></pre>
<p>Und zwar es fehlt ; vor * da fehlt aber kein ; niergends!</p>
</blockquote>
<p>1. nirgendwo (nirgends)</p>
<p>2. doch - weil der typ noch nich bekannt ist...<br />
wenn du die reihenfolge so lassen willst/musst, dann schreib dort:<br />
<code>class Basis* commands_[3];</code></p>
<p>bb</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1689256</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1689256</guid><dc:creator><![CDATA[unskilled]]></dc:creator><pubDate>Wed, 01 Apr 2009 12:55:49 GMT</pubDate></item><item><title><![CDATA[Reply to Verbindung zwischen Klassen? on Wed, 01 Apr 2009 13:47:21 GMT]]></title><description><![CDATA[<p>Danke hat geholfen!!</p>
<p>Nächstes Prob:</p>
<pre><code class="language-cpp">class Basis;

class Interface
{
private:
  Basis* commands_[3];
public:
  Interface() ;
  ~Interface(){};
};

class Basis
{
protected:
 Interface&amp; i_;
public:
  Basis();
  ~Basis();
 virtual char* getName() =0; 
};

class Ableitung:public Basis
{
public:
  Ableitung() {cout&lt;&lt;&quot;Konstruktor Ableitung1&quot;&lt;&lt;endl;};
  ~Ableitung() {cout&lt;&lt;&quot;Destruktor Ableitung1&quot;&lt;&lt;endl;};
  char* getName() {return &quot;Ableitung&quot;;};
};
</code></pre>
<p>Nächstes Problem ich kann einfach nicht das Array of Objects Pointers anlegen! Und zwar wollte ich es so machen:</p>
<pre><code class="language-cpp">Interface::Interface()
{
    Basis* commands_[3];    
}
</code></pre>
<pre><code class="language-cpp">int main()
{
 Interface::commands_[0] = new Ableitung;
}
</code></pre>
<p>Stehe auf der Leitung <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="😕"
    /> <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>mfg</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1689279</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1689279</guid><dc:creator><![CDATA[hanni6al]]></dc:creator><pubDate>Wed, 01 Apr 2009 13:47:21 GMT</pubDate></item><item><title><![CDATA[Reply to Verbindung zwischen Klassen? on Wed, 01 Apr 2009 14:11:30 GMT]]></title><description><![CDATA[<p>Na, der Compiler müsste dir aber eine eindeutig verständliche Fehlererklärung liefern... <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f644.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--face_with_rolling_eyes"
      title=":rolling_eyes:"
      alt="🙄"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1689330</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1689330</guid><dc:creator><![CDATA[Bulli]]></dc:creator><pubDate>Wed, 01 Apr 2009 14:11:30 GMT</pubDate></item><item><title><![CDATA[Reply to Verbindung zwischen Klassen? on Wed, 01 Apr 2009 14:13:59 GMT]]></title><description><![CDATA[<p>Bulli schrieb:</p>
<blockquote>
<p>Na, der Compiler müsste dir aber eine eindeutig verständliche Fehlererklärung liefern... <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f644.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--face_with_rolling_eyes"
      title=":rolling_eyes:"
      alt="🙄"
    /></p>
</blockquote>
<p>Also folgende Errors kommen werde leider nicht daraus schlau:</p>
<p>error C2597: Ungültiger Verweis auf nicht-statischen Member 'Interface::commands_'</p>
<p>error C3867: &quot;Interface::commands_&quot;: Dem Funktionsaufruf fehlt die Argumentliste. Verwenden Sie &quot;&amp;Interface::commands_&quot;, um einen Zeiger auf den Member zu erstellen.</p>
<p>error C2109: Index erfordert ein Array oder einen Zeigertyp</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1689332</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1689332</guid><dc:creator><![CDATA[hanni6al]]></dc:creator><pubDate>Wed, 01 Apr 2009 14:13:59 GMT</pubDate></item><item><title><![CDATA[Reply to Verbindung zwischen Klassen? on Wed, 01 Apr 2009 14:24:36 GMT]]></title><description><![CDATA[<pre><code class="language-cpp">Interface::Interface() 
{ 
    Basis* commands_[3];     
}
</code></pre>
<p>aha?<br />
was machst du hier?<br />
oder besser - was willst du hier machen? was du da machst, seh ich: gar nichts <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f61b.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--face_with_tongue"
      title=":P"
      alt="😛"
    /></p>
<p>bb</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1689344</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1689344</guid><dc:creator><![CDATA[unskilled]]></dc:creator><pubDate>Wed, 01 Apr 2009 14:24:36 GMT</pubDate></item><item><title><![CDATA[Reply to Verbindung zwischen Klassen? on Wed, 01 Apr 2009 14:25:54 GMT]]></title><description><![CDATA[<p>Und wie macht man es richtig? Ich will hier das Array anlegen</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1689345</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1689345</guid><dc:creator><![CDATA[hanni6al]]></dc:creator><pubDate>Wed, 01 Apr 2009 14:25:54 GMT</pubDate></item><item><title><![CDATA[Reply to Verbindung zwischen Klassen? on Wed, 01 Apr 2009 15:59:48 GMT]]></title><description><![CDATA[<p>so:</p>
<pre><code class="language-cpp">class Interface 
{ 
private: 
  Basis* commands_[3]; //hier deklarierst du es (&quot;legst du es an&quot;)
public: 
  Interface()
  {
    //hier kannst du es füllen, z.bsp. so:
    commands_[0] = new Ableitung(1);
    commands_[1] = new Ableitung(2);
    commands_[2] = new Ableitung(3);
  }

  ~Interface()
  {
    for (size_t i(0), e(3); i != e; ++i)
      delete commands_[i];
  }; 
};
</code></pre>
<p>bb</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1689408</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1689408</guid><dc:creator><![CDATA[unskilled]]></dc:creator><pubDate>Wed, 01 Apr 2009 15:59:48 GMT</pubDate></item><item><title><![CDATA[Reply to Verbindung zwischen Klassen? on Wed, 01 Apr 2009 16:36:46 GMT]]></title><description><![CDATA[<p>Hallo!</p>
<p>Leider funktioniert das nicht!</p>
<p>Bekomme folgende Fehlermeldung vom Linker:</p>
<p>error LNK2019: Verweis auf nicht aufgelöstes externes Symbol &quot;&quot;public: virtual __thiscall Basis::~Basis(void)&quot; (??1Basis@@UAE@XZ)&quot; in Funktion &quot;__unwindfunclet$??0Ableitung@@QAE@XZ$0&quot;.</p>
<p>&quot;&quot;public: virtual __thiscall Basis::~Basis(void)&quot; (??1Basis@@UAE@XZ)&quot; in Funktion &quot;__unwindfunclet$??0Ableitung@@QAE@XZ$0&quot;.</p>
<p>Habs so reingeschrieben:</p>
<pre><code class="language-cpp">Interface::Interface()
{
    commands_[0] = new Ableitung; 
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1689426</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1689426</guid><dc:creator><![CDATA[hanni6al]]></dc:creator><pubDate>Wed, 01 Apr 2009 16:36:46 GMT</pubDate></item><item><title><![CDATA[Reply to Verbindung zwischen Klassen? on Wed, 01 Apr 2009 17:28:17 GMT]]></title><description><![CDATA[<pre><code class="language-cpp">class Basis 
{ 
protected: 
  Interface&amp; i_; 

public: 
  Basis(); 
  ~Basis(); //das hier hast du nicht implementiert - das sagt dir deine fehlermeldung doch auch...
 virtual char* getName() =0; 
};
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1689450</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1689450</guid><dc:creator><![CDATA[unskilled]]></dc:creator><pubDate>Wed, 01 Apr 2009 17:28:17 GMT</pubDate></item><item><title><![CDATA[Reply to Verbindung zwischen Klassen? on Wed, 01 Apr 2009 20:23:26 GMT]]></title><description><![CDATA[<p>Du mußt die Fehlermeldungen lesen! Für einen Anfänger sicherlich am Anfang schwer, weil es teilweise kryptisch aussieht. Aber wenn man immer nur fragt, und nicht selber liest, wird man es nie lernen.<br />
Aber hier mal das wichtigste in Fett, wie man es liest:</p>
<p>error LNK2019: <strong>Verweis auf nicht aufgelöstes externes Symbol</strong> &quot;&quot;public: virtual __thiscall <strong>Basis::~Basis(void)</strong>&quot; (??1Basis@@UAE@XZ)&quot; <strong>in Funktion</strong> &quot;__unwindfunclet$??0<strong>Ableitung</strong>@@QAE@XZ$0&quot;.</p>
<p>&quot;&quot;public: virtual __thiscall <strong>Basis::~Basis(void)</strong>&quot; (??1Basis@@UAE@XZ)&quot;**<br />
in Funktion** &quot;__unwindfunclet$??0<strong>Ableitung</strong>@@QAE@XZ$0&quot;.</p>
<p>Übrigens, der MSVC ist schon so genial, das er dir Error-Codes ausspuckt (z.B. LNK2019) und du diese in der MSDN nachschlagen kannst:<br />
<a href="http://msdn.microsoft.com/de-de/library/799kze2z.aspx" rel="nofollow">http://msdn.microsoft.com/de-de/library/799kze2z.aspx</a></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1689582</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1689582</guid><dc:creator><![CDATA[Bulli]]></dc:creator><pubDate>Wed, 01 Apr 2009 20:23:26 GMT</pubDate></item></channel></rss>