<?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[Probleme mit Mehrfachvererbung]]></title><description><![CDATA[<p>Hallo zusammen,</p>
<p>Ich soll ein Schachspiel implementieren, allerdings ist es meiner Meinung nach ehr ein allgemeines Problem, das ich hab und deshalb poste ich es hier.</p>
<p>Für die Figuren gibt es eine Oberklasse &quot;U7A1_Spielfigur&quot;.<br />
Von dieser Klasse werden unter anderem der Läuefer (&quot;U7A1_Laeufer&quot;) und der Turm (&quot;U7A1_Turm&quot;) abgeleitet.<br />
Die Dame setzt sich nun ja aus Läufer und Turm zusammen, also möchte ich, dass sie von diesen beiden erbt.</p>
<p>Das ist der Code der Dame:</p>
<pre><code class="language-cpp">#include &quot;U7A2_Dame.h&quot;

bool U7A2_Dame::zieheNach(unsigned int zeile,
													unsigned int spalte, 
													std::map&lt; std::pair&lt; unsigned int, unsigned int&gt; , U7A1_Spielfigur*&gt;&amp; feind_figuren,
													std::map&lt; std::pair&lt; unsigned int, unsigned int&gt; , U7A1_Spielfigur*&gt;&amp; freund_figuren)
{
	if ( ( position_.first == zeile) || ( position_.second == spalte) )
	{
		return U7A1_Turm::zieheNach(zeile, spalte, feind_figuren, freund_figuren);
	}
	else
	{
		return U7A1_Laeufer::zieheNach(zeile, spalte, feind_figuren, freund_figuren);
	}
}

virtual bool U7A2_Dame::kannZiehenNach(unsigned int zeile,
															unsigned int spalte, 
															std::map&lt; std::pair&lt; unsigned int, unsigned int&gt; , U7A1_Spielfigur*&gt;&amp; feind_figuren,
															std::map&lt; std::pair&lt; unsigned int, unsigned int&gt; , U7A1_Spielfigur*&gt;&amp; freund_figuren)

{
	if ( ( position_.first == zeile) || ( position_.second == spalte) )
	{
		return (*this).U7A1_Turm::kannZiehenNach(zeile, spalte, feind_figuren, freund_figuren);
	}
	else
	{
		return U7A1_Laeufer::kannZiehenNach(zeile, spalte, feind_figuren, freund_figuren);
	}
}

std::string U7A2_Dame::alsString()
{
  std::string resultat = &quot;&quot;;

  if (schwarz_)
  {
		resultat = std::string(&quot;Q&quot;);
  }
  else
  {
  	// Wenn dieser String auf die Kommandozeile ausgegeben wird, 
  	// so wird die Textfarbe auf rot gesetzt.
		resultat = std::string(&quot;\033[31mQ&quot;);		
  }
  return resultat;
}

bool U7A2_Dame::figurImWeg(const std::pair&lt; unsigned int, unsigned int &gt;&amp; ziel,
													const std::pair&lt; unsigned int, unsigned int &gt;&amp; hindernis)
{
	if ( ( position_.first == ziel.first) || ( position_.second == ziel.second) )
	{
		return (*this).U7A1_Turm::figurImWeg(ziel, hindernis);
	}
	else
	{
		return U7A1_Laeufer::figurImWeg(ziel, hindernis);
	}
}
</code></pre>
<p>Wenn ich jetzt die Dame compilieren will, erhalte ich folgenden Fehler:</p>
<pre><code>U7A2_Dame.C: In member function `virtual bool U7A2_Dame::zieheNach(unsigned int, unsigned int, std::map&lt;std::pair&lt;unsigned int, unsigned int&gt;, U7A1_Spielfigur*, std::less&lt;std::pair&lt;unsigned int, unsigned int&gt; &gt;, std::allocator&lt;std::pair&lt;const std::pair&lt;unsigned int, unsigned int&gt;, U7A1_Spielfigur*&gt; &gt; &gt;&amp;, std::map&lt;std::pair&lt;unsigned int, unsigned int&gt;, U7A1_Spielfigur*, std::less&lt;std::pair&lt;unsigned int, unsigned int&gt; &gt;, std::allocator&lt;std::pair&lt;const std::pair&lt;unsigned int, unsigned int&gt;, U7A1_Spielfigur*&gt; &gt; &gt;&amp;)':

U7A1_Turm.h:53: Fehler: &gt;&gt;virtual bool U7A1_Turm::zieheNach(unsigned int, unsigned int, std::map&lt;std::pair&lt;unsigned int, unsigned int&gt;, U7A1_Spielfigur*, std::less&lt;std::pair&lt;unsigned int, unsigned int&gt; &gt;, std::allocator&lt;std::pair&lt;const std::pair&lt;unsigned int, unsigned int&gt;, U7A1_Spielfigur*&gt; &gt; &gt;&amp;, std::map&lt;std::pair&lt;unsigned int, unsigned int&gt;, U7A1_Spielfigur*, std::less&lt;std::pair&lt;unsigned int, unsigned int&gt; &gt;, std::allocator&lt;std::pair&lt;const std::pair&lt;unsigned int, unsigned int&gt;, U7A1_Spielfigur*&gt; &gt; &gt;&amp;)&lt;&lt; ist privat

U7A2_Dame.C:21: Fehler: in diesem Zusammenhang

U7A1_Laeufer.h:52: Fehler: &gt;&gt;virtual bool U7A1_Laeufer::zieheNach(unsigned int, unsigned int, std::map&lt;std::pair&lt;unsigned int, unsigned int&gt;, U7A1_Spielfigur*, std::less&lt;std::pair&lt;unsigned int, unsigned int&gt; &gt;, std::allocator&lt;std::pair&lt;const std::pair&lt;unsigned int, unsigned int&gt;, U7A1_Spielfigur*&gt; &gt; &gt;&amp;, std::map&lt;std::pair&lt;unsigned int, unsigned int&gt;, U7A1_Spielfigur*, std::less&lt;std::pair&lt;unsigned int, unsigned int&gt; &gt;, std::allocator&lt;std::pair&lt;const std::pair&lt;unsigned int, unsigned int&gt;, U7A1_Spielfigur*&gt; &gt; &gt;&amp;)&lt;&lt; ist privat

U7A2_Dame.C:25: Fehler: in diesem Zusammenhang

U7A2_Dame.C: At global scope:

U7A2_Dame.C:34: Fehler: virtuelle Deklaration einer &quot;ausseren Klasse

U7A2_Dame.C: In member function `virtual bool U7A2_Dame::kannZiehenNach(unsigned int, unsigned int, std::map&lt;std::pair&lt;unsigned int, unsigned int&gt;, U7A1_Spielfigur*, std::less&lt;std::pair&lt;unsigned int, unsigned int&gt; &gt;, std::allocator&lt;std::pair&lt;const std::pair&lt;unsigned int, unsigned int&gt;, U7A1_Spielfigur*&gt; &gt; &gt;&amp;, std::map&lt;std::pair&lt;unsigned int, unsigned int&gt;, U7A1_Spielfigur*, std::less&lt;std::pair&lt;unsigned int, unsigned int&gt; &gt;, std::allocator&lt;std::pair&lt;const std::pair&lt;unsigned int, unsigned int&gt;, U7A1_Spielfigur*&gt; &gt; &gt;&amp;)':

U7A1_Turm.h:37: Fehler: &gt;&gt;virtual bool U7A1_Turm::kannZiehenNach(unsigned int, unsigned int, std::map&lt;std::pair&lt;unsigned int, unsigned int&gt;, U7A1_Spielfigur*, std::less&lt;std::pair&lt;unsigned int, unsigned int&gt; &gt;, std::allocator&lt;std::pair&lt;const std::pair&lt;unsigned int, unsigned int&gt;, U7A1_Spielfigur*&gt; &gt; &gt;&amp;, std::map&lt;std::pair&lt;unsigned int, unsigned int&gt;, U7A1_Spielfigur*, std::less&lt;std::pair&lt;unsigned int, unsigned int&gt; &gt;, std::allocator&lt;std::pair&lt;const std::pair&lt;unsigned int, unsigned int&gt;, U7A1_Spielfigur*&gt; &gt; &gt;&amp;)&lt;&lt; ist privat

U7A2_Dame.C:37: Fehler: in diesem Zusammenhang

U7A1_Laeufer.h:36: Fehler: &gt;&gt;virtual bool U7A1_Laeufer::kannZiehenNach(unsigned int, unsigned int, std::map&lt;std::pair&lt;unsigned int, unsigned int&gt;, U7A1_Spielfigur*, std::less&lt;std::pair&lt;unsigned int, unsigned int&gt; &gt;, std::allocator&lt;std::pair&lt;const std::pair&lt;unsigned int, unsigned int&gt;, U7A1_Spielfigur*&gt; &gt; &gt;&amp;, std::map&lt;std::pair&lt;unsigned int, unsigned int&gt;, U7A1_Spielfigur*, std::less&lt;std::pair&lt;unsigned int, unsigned int&gt; &gt;, std::allocator&lt;std::pair&lt;const std::pair&lt;unsigned int, unsigned int&gt;, U7A1_Spielfigur*&gt; &gt; &gt;&amp;)&lt;&lt; ist privat

U7A2_Dame.C:41: Fehler: in diesem Zusammenhang
</code></pre>
<p>(Sorry das ich soviel Code poste, weiß nicht wies besser geht...)</p>
<p>Ich hab leider keine Ahnung, was ich falsch mache....</p>
<p>Wäre super, wenn ihr mir helfen könntet...</p>
<p>MfG Xargo</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/151076/probleme-mit-mehrfachvererbung</link><generator>RSS for Node</generator><lastBuildDate>Sun, 06 Sep 2026 01:28:52 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/151076.rss" rel="self" type="application/rss+xml"/><pubDate>Thu, 22 Jun 2006 20:12:51 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Probleme mit Mehrfachvererbung on Thu, 22 Jun 2006 20:12:51 GMT]]></title><description><![CDATA[<p>Hallo zusammen,</p>
<p>Ich soll ein Schachspiel implementieren, allerdings ist es meiner Meinung nach ehr ein allgemeines Problem, das ich hab und deshalb poste ich es hier.</p>
<p>Für die Figuren gibt es eine Oberklasse &quot;U7A1_Spielfigur&quot;.<br />
Von dieser Klasse werden unter anderem der Läuefer (&quot;U7A1_Laeufer&quot;) und der Turm (&quot;U7A1_Turm&quot;) abgeleitet.<br />
Die Dame setzt sich nun ja aus Läufer und Turm zusammen, also möchte ich, dass sie von diesen beiden erbt.</p>
<p>Das ist der Code der Dame:</p>
<pre><code class="language-cpp">#include &quot;U7A2_Dame.h&quot;

bool U7A2_Dame::zieheNach(unsigned int zeile,
													unsigned int spalte, 
													std::map&lt; std::pair&lt; unsigned int, unsigned int&gt; , U7A1_Spielfigur*&gt;&amp; feind_figuren,
													std::map&lt; std::pair&lt; unsigned int, unsigned int&gt; , U7A1_Spielfigur*&gt;&amp; freund_figuren)
{
	if ( ( position_.first == zeile) || ( position_.second == spalte) )
	{
		return U7A1_Turm::zieheNach(zeile, spalte, feind_figuren, freund_figuren);
	}
	else
	{
		return U7A1_Laeufer::zieheNach(zeile, spalte, feind_figuren, freund_figuren);
	}
}

virtual bool U7A2_Dame::kannZiehenNach(unsigned int zeile,
															unsigned int spalte, 
															std::map&lt; std::pair&lt; unsigned int, unsigned int&gt; , U7A1_Spielfigur*&gt;&amp; feind_figuren,
															std::map&lt; std::pair&lt; unsigned int, unsigned int&gt; , U7A1_Spielfigur*&gt;&amp; freund_figuren)

{
	if ( ( position_.first == zeile) || ( position_.second == spalte) )
	{
		return (*this).U7A1_Turm::kannZiehenNach(zeile, spalte, feind_figuren, freund_figuren);
	}
	else
	{
		return U7A1_Laeufer::kannZiehenNach(zeile, spalte, feind_figuren, freund_figuren);
	}
}

std::string U7A2_Dame::alsString()
{
  std::string resultat = &quot;&quot;;

  if (schwarz_)
  {
		resultat = std::string(&quot;Q&quot;);
  }
  else
  {
  	// Wenn dieser String auf die Kommandozeile ausgegeben wird, 
  	// so wird die Textfarbe auf rot gesetzt.
		resultat = std::string(&quot;\033[31mQ&quot;);		
  }
  return resultat;
}

bool U7A2_Dame::figurImWeg(const std::pair&lt; unsigned int, unsigned int &gt;&amp; ziel,
													const std::pair&lt; unsigned int, unsigned int &gt;&amp; hindernis)
{
	if ( ( position_.first == ziel.first) || ( position_.second == ziel.second) )
	{
		return (*this).U7A1_Turm::figurImWeg(ziel, hindernis);
	}
	else
	{
		return U7A1_Laeufer::figurImWeg(ziel, hindernis);
	}
}
</code></pre>
<p>Wenn ich jetzt die Dame compilieren will, erhalte ich folgenden Fehler:</p>
<pre><code>U7A2_Dame.C: In member function `virtual bool U7A2_Dame::zieheNach(unsigned int, unsigned int, std::map&lt;std::pair&lt;unsigned int, unsigned int&gt;, U7A1_Spielfigur*, std::less&lt;std::pair&lt;unsigned int, unsigned int&gt; &gt;, std::allocator&lt;std::pair&lt;const std::pair&lt;unsigned int, unsigned int&gt;, U7A1_Spielfigur*&gt; &gt; &gt;&amp;, std::map&lt;std::pair&lt;unsigned int, unsigned int&gt;, U7A1_Spielfigur*, std::less&lt;std::pair&lt;unsigned int, unsigned int&gt; &gt;, std::allocator&lt;std::pair&lt;const std::pair&lt;unsigned int, unsigned int&gt;, U7A1_Spielfigur*&gt; &gt; &gt;&amp;)':

U7A1_Turm.h:53: Fehler: &gt;&gt;virtual bool U7A1_Turm::zieheNach(unsigned int, unsigned int, std::map&lt;std::pair&lt;unsigned int, unsigned int&gt;, U7A1_Spielfigur*, std::less&lt;std::pair&lt;unsigned int, unsigned int&gt; &gt;, std::allocator&lt;std::pair&lt;const std::pair&lt;unsigned int, unsigned int&gt;, U7A1_Spielfigur*&gt; &gt; &gt;&amp;, std::map&lt;std::pair&lt;unsigned int, unsigned int&gt;, U7A1_Spielfigur*, std::less&lt;std::pair&lt;unsigned int, unsigned int&gt; &gt;, std::allocator&lt;std::pair&lt;const std::pair&lt;unsigned int, unsigned int&gt;, U7A1_Spielfigur*&gt; &gt; &gt;&amp;)&lt;&lt; ist privat

U7A2_Dame.C:21: Fehler: in diesem Zusammenhang

U7A1_Laeufer.h:52: Fehler: &gt;&gt;virtual bool U7A1_Laeufer::zieheNach(unsigned int, unsigned int, std::map&lt;std::pair&lt;unsigned int, unsigned int&gt;, U7A1_Spielfigur*, std::less&lt;std::pair&lt;unsigned int, unsigned int&gt; &gt;, std::allocator&lt;std::pair&lt;const std::pair&lt;unsigned int, unsigned int&gt;, U7A1_Spielfigur*&gt; &gt; &gt;&amp;, std::map&lt;std::pair&lt;unsigned int, unsigned int&gt;, U7A1_Spielfigur*, std::less&lt;std::pair&lt;unsigned int, unsigned int&gt; &gt;, std::allocator&lt;std::pair&lt;const std::pair&lt;unsigned int, unsigned int&gt;, U7A1_Spielfigur*&gt; &gt; &gt;&amp;)&lt;&lt; ist privat

U7A2_Dame.C:25: Fehler: in diesem Zusammenhang

U7A2_Dame.C: At global scope:

U7A2_Dame.C:34: Fehler: virtuelle Deklaration einer &quot;ausseren Klasse

U7A2_Dame.C: In member function `virtual bool U7A2_Dame::kannZiehenNach(unsigned int, unsigned int, std::map&lt;std::pair&lt;unsigned int, unsigned int&gt;, U7A1_Spielfigur*, std::less&lt;std::pair&lt;unsigned int, unsigned int&gt; &gt;, std::allocator&lt;std::pair&lt;const std::pair&lt;unsigned int, unsigned int&gt;, U7A1_Spielfigur*&gt; &gt; &gt;&amp;, std::map&lt;std::pair&lt;unsigned int, unsigned int&gt;, U7A1_Spielfigur*, std::less&lt;std::pair&lt;unsigned int, unsigned int&gt; &gt;, std::allocator&lt;std::pair&lt;const std::pair&lt;unsigned int, unsigned int&gt;, U7A1_Spielfigur*&gt; &gt; &gt;&amp;)':

U7A1_Turm.h:37: Fehler: &gt;&gt;virtual bool U7A1_Turm::kannZiehenNach(unsigned int, unsigned int, std::map&lt;std::pair&lt;unsigned int, unsigned int&gt;, U7A1_Spielfigur*, std::less&lt;std::pair&lt;unsigned int, unsigned int&gt; &gt;, std::allocator&lt;std::pair&lt;const std::pair&lt;unsigned int, unsigned int&gt;, U7A1_Spielfigur*&gt; &gt; &gt;&amp;, std::map&lt;std::pair&lt;unsigned int, unsigned int&gt;, U7A1_Spielfigur*, std::less&lt;std::pair&lt;unsigned int, unsigned int&gt; &gt;, std::allocator&lt;std::pair&lt;const std::pair&lt;unsigned int, unsigned int&gt;, U7A1_Spielfigur*&gt; &gt; &gt;&amp;)&lt;&lt; ist privat

U7A2_Dame.C:37: Fehler: in diesem Zusammenhang

U7A1_Laeufer.h:36: Fehler: &gt;&gt;virtual bool U7A1_Laeufer::kannZiehenNach(unsigned int, unsigned int, std::map&lt;std::pair&lt;unsigned int, unsigned int&gt;, U7A1_Spielfigur*, std::less&lt;std::pair&lt;unsigned int, unsigned int&gt; &gt;, std::allocator&lt;std::pair&lt;const std::pair&lt;unsigned int, unsigned int&gt;, U7A1_Spielfigur*&gt; &gt; &gt;&amp;, std::map&lt;std::pair&lt;unsigned int, unsigned int&gt;, U7A1_Spielfigur*, std::less&lt;std::pair&lt;unsigned int, unsigned int&gt; &gt;, std::allocator&lt;std::pair&lt;const std::pair&lt;unsigned int, unsigned int&gt;, U7A1_Spielfigur*&gt; &gt; &gt;&amp;)&lt;&lt; ist privat

U7A2_Dame.C:41: Fehler: in diesem Zusammenhang
</code></pre>
<p>(Sorry das ich soviel Code poste, weiß nicht wies besser geht...)</p>
<p>Ich hab leider keine Ahnung, was ich falsch mache....</p>
<p>Wäre super, wenn ihr mir helfen könntet...</p>
<p>MfG Xargo</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1083384</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1083384</guid><dc:creator><![CDATA[Xargo]]></dc:creator><pubDate>Thu, 22 Jun 2006 20:12:51 GMT</pubDate></item><item><title><![CDATA[Reply to Probleme mit Mehrfachvererbung on Thu, 22 Jun 2006 20:57:34 GMT]]></title><description><![CDATA[<p>der wesentliche teil - die klassendefinitionen fehlen hier. schliesslich beschwert er sich, dass gewissen funktionen privat sind. das ein dame ein turm und ein läufer ist, halte ich für eine gewagte konstruktion. schliesslich brauchst du z.b. für eine rochade einen echten turm. im übrigen ist es dann wohl erforderlich, dass spielfigur eine virtuelle basis von turm und läufer ist.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1083407</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1083407</guid><dc:creator><![CDATA[camper]]></dc:creator><pubDate>Thu, 22 Jun 2006 20:57:34 GMT</pubDate></item><item><title><![CDATA[Reply to Probleme mit Mehrfachvererbung on Thu, 22 Jun 2006 21:45:44 GMT]]></title><description><![CDATA[<p>Okay hier sind mal die Header-Dateien der Dame, des Läufers und des Turms.<br />
Rochade muss nicht implementiert werden und das mit dem Dame = Läufer und Turm ist leider so vorgegeben <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="😞"
    /></p>
<p>Dame</p>
<pre><code class="language-cpp">#ifndef U7A2_DAME_H
#define U7A2_DAME_H

#include &quot;U7A1_Turm.h&quot;
#include &quot;U7A1_Laeufer.h&quot;

class U7A2_Dame
	: public U7A1_Turm, public U7A1_Laeufer
{

	virtual ~U7A2_Dame();

	// Funktion:          zieheNach
  //
  // Parameter:         zeile                    Zeilenindex der Zielposition
  //                    spalte                   Spaltenindex der Zielposition
	//                    feind_figuren            die gegnerischen Figuren
	//                    freund_figuren           die eigenen Figuren
	//
	// Rueckgabewert:     bool
	//
	// Beschreibung:      Diese Methode versetzt die U7A1_Spielfigur nach (zeile, spalte), falls der Zug moeglich ist
	//                    und gibt 'true' zurueck. Ist der Zug nicht moeglich, so wird 'false' zurueckgegeben.

	virtual bool zieheNach(unsigned int zeile,
																unsigned int spalte, 
																std::map&lt; std::pair&lt; unsigned int, unsigned int&gt; , U7A1_Spielfigur*&gt;&amp; feind_figuren,
																std::map&lt; std::pair&lt; unsigned int, unsigned int&gt; , U7A1_Spielfigur*&gt;&amp; freund_figuren);

	// Funktion:          kannZiehenNach
	//
	// Parameter:         zeile                    Zeilenindex der Zielposition
	//                    spalte                   Spaltenindex der Zielposition
	//                    feind_figuren            die gegnerischen Figuren
	//                    freund_figuren           die eigenen Figuren
	//
	// Rueckgabewert:     bool
	//
	// Beschreibung:      Diese Methode testet, ob die U7A1_Spielfigur nach (zeile, spalte) ziehen kann.
	//                    Ist dies der Fall, so wird 'true', andernfalls 'false' zurueckgegeben.
	virtual bool kannZiehenNach(unsigned int zeile,
															unsigned int spalte, 
															std::map&lt; std::pair&lt; unsigned int, unsigned int&gt; , U7A1_Spielfigur*&gt;&amp; feind_figuren,
															std::map&lt; std::pair&lt; unsigned int, unsigned int&gt; , U7A1_Spielfigur*&gt;&amp; freund_figuren);

	// Funktion:          alsString
	//
	// Parameter:         void
	//
	// Rueckgabewert:     std::string
	//
	// Beschreibung:      Diese Methode gibt den Buchstaben der U7A1_Spielfigur zurueck. Hierbei ist:
	//
	//                    P: Bauer (pawn)
	//                    N: Springer (knight)
	//                    B: Laeufer (bishop)
	//                    R: Turm (rook)
	//                    Q: Koenigin (queen)
	//                    K: Koenig (king)
	//
	//                    Der Buchstabe wird schwarz dargestellt, wenn 'schwarz_' 'true' ist, 
	//                    andernfalls rot.
    virtual std::string alsString();

	protected:

	// Funktion:          figurImWeg
	//
	// Parameter:         ziel                    Das Ziel des Zuges
	//                    hindernis               Ein potentielles Hindernis (eine andere Figur)
	//
	// Rueckgabewert:     bool
	//
	// Beschreibung:      Diese Methode testet, ob auf dem Weg von der eigenen Position
	//                    zum Ziel das potentielle Hindernis 'hindernis' im Weg steht.
	//                    Ist dies der Fall, gibt die Methode 'true' zurueck, andernfalls
	//                    gibt sie 'false' zurueck.
	virtual 	bool figurImWeg(const std::pair&lt; unsigned int, unsigned int &gt;&amp; ziel,
													const std::pair&lt; unsigned int, unsigned int &gt;&amp; hindernis);

};

#endif
</code></pre>
<p>Turm</p>
<pre><code class="language-cpp">#ifndef U7A1_TURM_H
#define U7A1_TURM_H

#include &quot;U7A1_Spielfigur.h&quot;

class U7A1_Turm
	: virtual public U7A1_Spielfigur
{

		virtual ~U7A1_Turm();

		// Funktion:          kannZiehenNach
    //
    // Parameter:         zeile                    Zeilenindex der Zielposition
    //                    spalte                   Spaltenindex der Zielposition
    //                    feind_figuren            die gegnerischen Figuren
    //                    freund_figuren           die eigenen Figuren
    //
    // Rueckgabewert:     bool
    //
    // Beschreibung:      Diese Methode testet, ob die U7A1_Spielfigur nach (zeile, spalte) ziehen kann.
    //                    Ist dies der Fall, so wird 'true', andernfalls 'false' zurueckgegeben.
    virtual bool kannZiehenNach(unsigned int zeile,
																unsigned int spalte, 
																std::map&lt; std::pair&lt; unsigned int, unsigned int&gt; , U7A1_Spielfigur*&gt;&amp; feind_figuren,
																std::map&lt; std::pair&lt; unsigned int, unsigned int&gt; , U7A1_Spielfigur*&gt;&amp; freund_figuren);

    // Funktion:          zieheNach
    //
    // Parameter:         zeile                    Zeilenindex der Zielposition
    //                    spalte                   Spaltenindex der Zielposition
    //                    feind_figuren            die gegnerischen Figuren
    //                    freund_figuren           die eigenen Figuren
    //
    // Rueckgabewert:     bool
    //
    // Beschreibung:      Diese Methode versetzt die U7A1_Spielfigur nach (zeile, spalte), falls der Zug moeglich ist
    //                    und gibt 'true' zurueck. Ist der Zug nicht moeglich, so wird 'false' zurueckgegeben.
    virtual bool zieheNach(unsigned int zeile,
			   									 unsigned int spalte, 
			   									 std::map&lt; std::pair&lt; unsigned int, unsigned int&gt; , U7A1_Spielfigur*&gt;&amp; feind_figuren,
			   									 std::map&lt; std::pair&lt; unsigned int, unsigned int&gt; , U7A1_Spielfigur*&gt;&amp; freund_figuren);

    // Funktion:          alsString
    //
    // Parameter:         void
    //
    // Rueckgabewert:     std::string
    //
    // Beschreibung:      Diese Methode gibt den Buchstaben der U7A1_Spielfigur zurueck. Hierbei ist:
    //
    //                    P: Bauer (pawn)
    //                    N: Springer (knight)
    //                    B: Laeufer (bishop)
    //                    R: Turm (rook)
    //                    Q: Koenigin (queen)
    //                    K: Koenig (king)
    //
    //                    Der Buchstabe wird schwarz dargestellt, wenn 'schwarz_' 'true' ist, 
    //                    andernfalls rot.
    virtual std::string alsString();

		protected:

    // Funktion:          figurImWeg
    //
    // Parameter:         ziel                    Das Ziel des Zuges
    //                    hindernis               Ein potentielles Hindernis (eine andere Figur)
    //
    // Rueckgabewert:     bool
   	//
    // Beschreibung:      Diese Methode testet, ob auf dem Weg von der eigenen Position
    //                    zum Ziel das potentielle Hindernis 'hindernis' im Weg steht.
    //                    Ist dies der Fall, gibt die Methode 'true' zurueck, andernfalls
    //                    gibt sie 'false' zurueck.
    virtual bool figurImWeg(const std::pair&lt; unsigned int, unsigned int &gt;&amp; ziel,
			    									const std::pair&lt; unsigned int, unsigned int &gt;&amp; hindernis);
};

#endif
</code></pre>
<p>Und Läufer</p>
<pre><code class="language-cpp">#ifndef U7A1_LAEUFER_H
#define U7A1_LAEUFER_H

#include &quot;U7A1_Spielfigur.h&quot;

class U7A1_Laeufer
	: virtual public U7A1_Spielfigur
{
		virtual ~U7A1_Laeufer();

	// Funktion:          kannZiehenNach
    //
    // Parameter:         zeile                    Zeilenindex der Zielposition
    //                    spalte                   Spaltenindex der Zielposition
    //                    feind_figuren            die gegnerischen Figuren
    //                    freund_figuren           die eigenen Figuren
    //
    // Rueckgabewert:     bool
    //
    // Beschreibung:      Diese Methode testet, ob die U7A1_Spielfigur nach (zeile, spalte) ziehen kann.
    //                    Ist dies der Fall, so wird 'true', andernfalls 'false' zurueckgegeben.
    virtual bool kannZiehenNach(unsigned int zeile,
																unsigned int spalte, 
																std::map&lt; std::pair&lt; unsigned int, unsigned int&gt; , U7A1_Spielfigur*&gt;&amp; feind_figuren,
																std::map&lt; std::pair&lt; unsigned int, unsigned int&gt; , U7A1_Spielfigur*&gt;&amp; freund_figuren);

    // Funktion:          zieheNach
    //
    // Parameter:         zeile                    Zeilenindex der Zielposition
    //                    spalte                   Spaltenindex der Zielposition
    //                    feind_figuren            die gegnerischen Figuren
    //                    freund_figuren           die eigenen Figuren
    //
    // Rueckgabewert:     bool
    //
    // Beschreibung:      Diese Methode versetzt die U7A1_Spielfigur nach (zeile, spalte), falls der Zug moeglich ist
    //                    und gibt 'true' zurueck. Ist der Zug nicht moeglich, so wird 'false' zurueckgegeben.
    virtual bool zieheNach(unsigned int zeile,
			   									 unsigned int spalte, 
			   									 std::map&lt; std::pair&lt; unsigned int, unsigned int&gt; , U7A1_Spielfigur*&gt;&amp; feind_figuren,
			   									 std::map&lt; std::pair&lt; unsigned int, unsigned int&gt; , U7A1_Spielfigur*&gt;&amp; freund_figuren);

    // Funktion:          alsString
    //
    // Parameter:         void
    //
    // Rueckgabewert:     std::string
    //
    // Beschreibung:      Diese Methode gibt den Buchstaben der U7A1_Spielfigur zurueck. Hierbei ist:
    //
    //                    P: Bauer (pawn)
    //                    N: Springer (knight)
    //                    B: Laeufer (bishop)
    //                    R: Turm (rook)
    //                    Q: Koenigin (queen)
    //                    K: Koenig (king)
    //
    //                    Der Buchstabe wird schwarz dargestellt, wenn 'schwarz_' 'true' ist, 
    //                    andernfalls rot.
    virtual std::string alsString();

		protected:

    // Funktion:          figurImWeg
    //
    // Parameter:         ziel                    Das Ziel des Zuges
    //                    hindernis               Ein potentielles Hindernis (eine andere Figur)
    //
    // Rueckgabewert:     bool
   	//
    // Beschreibung:      Diese Methode testet, ob auf dem Weg von der eigenen Position
    //                    zum Ziel das potentielle Hindernis 'hindernis' im Weg steht.
    //                    Ist dies der Fall, gibt die Methode 'true' zurueck, andernfalls
    //                    gibt sie 'false' zurueck.
    virtual bool figurImWeg(const std::pair&lt; unsigned int, unsigned int &gt;&amp; ziel,
			    									const std::pair&lt; unsigned int, unsigned int &gt;&amp; hindernis);
};

#endif
</code></pre>
<p>Wäre super, wenn mir jemand helfen könnte, warum der Compiler motzt...</p>
<p>VIelen Dank</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1083424</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1083424</guid><dc:creator><![CDATA[Xargo]]></dc:creator><pubDate>Thu, 22 Jun 2006 21:45:44 GMT</pubDate></item><item><title><![CDATA[Reply to Probleme mit Mehrfachvererbung on Thu, 22 Jun 2006 22:11:58 GMT]]></title><description><![CDATA[<p>der defaultzugriff auf member für klassen, die mit class deklariert werden, ist privat. folglich kannst du diese funktionen in läufer und turm nicht per qualifiziertem aufruf aus dame heraus aufrufen. deklariert dort einfach alles public. sinnvollerweise sollte das auch in dame passieren.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1083437</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1083437</guid><dc:creator><![CDATA[camper]]></dc:creator><pubDate>Thu, 22 Jun 2006 22:11:58 GMT</pubDate></item><item><title><![CDATA[Reply to Probleme mit Mehrfachvererbung on Thu, 22 Jun 2006 22:27:50 GMT]]></title><description><![CDATA[<p>Super danke...<br />
Aber das war eigentlich fast zu einfach <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/1083451</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1083451</guid><dc:creator><![CDATA[Xargo]]></dc:creator><pubDate>Thu, 22 Jun 2006 22:27:50 GMT</pubDate></item></channel></rss>