<?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[Noch ein merkwürdiger Fehler]]></title><description><![CDATA[<p>So, nachdem ihr mir schon alle so gut weitergeholfen habt, hab ich mein Programm heute weitesgehend umgeschrieben und dadurch sogar eine Beschleunigung um den Faktor 6 erhalten.<br />
Allerdings steh ich jetzt einem neuen Problem gegenüber. Und zwar folgendes funktioniert nicht:</p>
<pre><code class="language-cpp">#pragma once

#include &lt;algorithm&gt;
#include &quot;Color.h&quot;

const Color yellow = Color ( 1.0f, 1.0f, 0.0f, 1.0f );
const Color orange = Color ( 1.0f, 0.5f, 0.0f, 1.0f );
const Color green  = Color ( 0.0f, 1.0f, 0.0f, 1.0f );
const Color red    = Color ( 1.0f, 0.0f, 0.0f, 1.0f );
const Color blue   = Color ( 0.4f, 0.4f, 1.0f, 1.0f );
const Color black  = Color ( 0.0f, 0.0f, 0.0f, 1.0f );

enum Side
{
	Front = 1, Left = 2, Back = 3, Right = 4, Top = 5, Bottom = 6
};

enum Edge
{
	ELeft, ETop, ERight, EBottom, Non
};

class Stone{
	...
};
</code></pre>
<p>Hier bekomme ich folgende Fehlermeldung, die auf die Klasse Color zurück fällt:</p>
<p>322 IntelliSense: Aufruf eines Objekts eines Klassentyps ohne entsprechenden ()-Operator oder Konvertierungsfunktionen für Typ &quot;pointer-to-function&quot;</p>
<p>Die Klasse Color sieht folgendermaßen aus:</p>
<pre><code class="language-cpp">#include &quot;glut.h&quot;

class Color
{
	public:
		float red, green, blue, alpha;
		Color() {  }		
		Color(float red, float green, float blue, float alpha);
		//Color(const Color&amp; orig);

		void drawColor();
		void setColor(const Color&amp; color);
		void exchangeColor(Color &amp; color);
}
</code></pre>
<p>Jetzt ist das Interessante, dass die Fehlermeldung in der Klasse Stone nicht geworfen wird, wenn ich folgendes tue:</p>
<pre><code class="language-cpp">#pragma once

#include &lt;algorithm&gt;
#include &quot;Color.h&quot;

; // &lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;---------------------------------------

const Color yellow = Color ( 1.0f, 1.0f, 0.0f, 1.0f );
const Color orange = Color ( 1.0f, 0.5f, 0.0f, 1.0f );
const Color green  = Color ( 0.0f, 1.0f, 0.0f, 1.0f );
const Color red    = Color ( 1.0f, 0.0f, 0.0f, 1.0f );
const Color blue   = Color ( 0.4f, 0.4f, 1.0f, 1.0f );
const Color black  = Color ( 0.0f, 0.0f, 0.0f, 1.0f );

enum Side
{
	Front = 1, Left = 2, Back = 3, Right = 4, Top = 5, Bottom = 6
};

enum Edge
{
	ELeft, ETop, ERight, EBottom, Non
};

class Stone{
	...
};
</code></pre>
<p>Mit dem Semikolon läuft auf einmal alles. Unerwünschter Nebeneffekt jedoch ist, dass keinerlei Operationen auf der Klasse Color mehr funktionieren. Nichteinmal der Konstruktor überträgt die Werte in die Membervariablen.</p>
<pre><code class="language-cpp">Color::Color(float red, float green, float blue, float alpha)
{
	Color::red = red;
	Color::green = green;
	Color::blue = blue;
	Color::alpha = alpha;
}
</code></pre>
<p>und wie ich jetzt gerade auf einmal sehe, bekomme ich auch in dieser Klasse eine neue Fehlermeldung...</p>
<p>321 IntelliSense: Der Rückgabetyp darf nicht in einem Konstruktor angegeben werden.</p>
<p>Den Header hab ich ja schon oben vorgeführt. Daher zeig ich hier eben noch einmal vorsichtshalber die ganze Klasse, falls ich da Mist gebaut habe... Der Fehler hier verweist irgendwie auf den ersten gleich aufgeführten Konstruktor.</p>
<pre><code class="language-cpp">#include &quot;Color.h&quot;

Color::Color(float red, float green, float blue, float alpha)
{
	Color::red = red;
	Color::green = green;
	Color::blue = blue;
	Color::alpha = alpha;
}

Color::Color(const Color&amp; orig)
{
	Color::red = orig.red;
	Color::green = orig.green;
	Color::blue = orig.blue;
	Color::alpha = orig.alpha;
}

void Color::drawColor()
{
	glColor4f(red,green,blue,alpha);
}

void Color::setColor(const Color&amp; color)
{
	red = color.red;
	green = color.green;
	blue = color.blue;
	alpha = color.alpha;
}

void Color::exchangeColor(Color &amp; color)
{
	float temp;
	temp = red;
	Color::red = color.red;
	color.red = temp;

	temp = green;
	Color::green = color.green;
	color.green = temp;

	temp = blue;
	Color::blue = color.blue;
	color.blue = temp;

	temp = alpha;
	Color::alpha = color.alpha;
	color.alpha = temp;
}
</code></pre>
<p>Danke schonmal im Voraus</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/307562/noch-ein-merkwürdiger-fehler</link><generator>RSS for Node</generator><lastBuildDate>Thu, 06 Aug 2026 18:01:44 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/307562.rss" rel="self" type="application/rss+xml"/><pubDate>Wed, 29 Aug 2012 22:42:43 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Noch ein merkwürdiger Fehler on Wed, 29 Aug 2012 22:42:43 GMT]]></title><description><![CDATA[<p>So, nachdem ihr mir schon alle so gut weitergeholfen habt, hab ich mein Programm heute weitesgehend umgeschrieben und dadurch sogar eine Beschleunigung um den Faktor 6 erhalten.<br />
Allerdings steh ich jetzt einem neuen Problem gegenüber. Und zwar folgendes funktioniert nicht:</p>
<pre><code class="language-cpp">#pragma once

#include &lt;algorithm&gt;
#include &quot;Color.h&quot;

const Color yellow = Color ( 1.0f, 1.0f, 0.0f, 1.0f );
const Color orange = Color ( 1.0f, 0.5f, 0.0f, 1.0f );
const Color green  = Color ( 0.0f, 1.0f, 0.0f, 1.0f );
const Color red    = Color ( 1.0f, 0.0f, 0.0f, 1.0f );
const Color blue   = Color ( 0.4f, 0.4f, 1.0f, 1.0f );
const Color black  = Color ( 0.0f, 0.0f, 0.0f, 1.0f );

enum Side
{
	Front = 1, Left = 2, Back = 3, Right = 4, Top = 5, Bottom = 6
};

enum Edge
{
	ELeft, ETop, ERight, EBottom, Non
};

class Stone{
	...
};
</code></pre>
<p>Hier bekomme ich folgende Fehlermeldung, die auf die Klasse Color zurück fällt:</p>
<p>322 IntelliSense: Aufruf eines Objekts eines Klassentyps ohne entsprechenden ()-Operator oder Konvertierungsfunktionen für Typ &quot;pointer-to-function&quot;</p>
<p>Die Klasse Color sieht folgendermaßen aus:</p>
<pre><code class="language-cpp">#include &quot;glut.h&quot;

class Color
{
	public:
		float red, green, blue, alpha;
		Color() {  }		
		Color(float red, float green, float blue, float alpha);
		//Color(const Color&amp; orig);

		void drawColor();
		void setColor(const Color&amp; color);
		void exchangeColor(Color &amp; color);
}
</code></pre>
<p>Jetzt ist das Interessante, dass die Fehlermeldung in der Klasse Stone nicht geworfen wird, wenn ich folgendes tue:</p>
<pre><code class="language-cpp">#pragma once

#include &lt;algorithm&gt;
#include &quot;Color.h&quot;

; // &lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;---------------------------------------

const Color yellow = Color ( 1.0f, 1.0f, 0.0f, 1.0f );
const Color orange = Color ( 1.0f, 0.5f, 0.0f, 1.0f );
const Color green  = Color ( 0.0f, 1.0f, 0.0f, 1.0f );
const Color red    = Color ( 1.0f, 0.0f, 0.0f, 1.0f );
const Color blue   = Color ( 0.4f, 0.4f, 1.0f, 1.0f );
const Color black  = Color ( 0.0f, 0.0f, 0.0f, 1.0f );

enum Side
{
	Front = 1, Left = 2, Back = 3, Right = 4, Top = 5, Bottom = 6
};

enum Edge
{
	ELeft, ETop, ERight, EBottom, Non
};

class Stone{
	...
};
</code></pre>
<p>Mit dem Semikolon läuft auf einmal alles. Unerwünschter Nebeneffekt jedoch ist, dass keinerlei Operationen auf der Klasse Color mehr funktionieren. Nichteinmal der Konstruktor überträgt die Werte in die Membervariablen.</p>
<pre><code class="language-cpp">Color::Color(float red, float green, float blue, float alpha)
{
	Color::red = red;
	Color::green = green;
	Color::blue = blue;
	Color::alpha = alpha;
}
</code></pre>
<p>und wie ich jetzt gerade auf einmal sehe, bekomme ich auch in dieser Klasse eine neue Fehlermeldung...</p>
<p>321 IntelliSense: Der Rückgabetyp darf nicht in einem Konstruktor angegeben werden.</p>
<p>Den Header hab ich ja schon oben vorgeführt. Daher zeig ich hier eben noch einmal vorsichtshalber die ganze Klasse, falls ich da Mist gebaut habe... Der Fehler hier verweist irgendwie auf den ersten gleich aufgeführten Konstruktor.</p>
<pre><code class="language-cpp">#include &quot;Color.h&quot;

Color::Color(float red, float green, float blue, float alpha)
{
	Color::red = red;
	Color::green = green;
	Color::blue = blue;
	Color::alpha = alpha;
}

Color::Color(const Color&amp; orig)
{
	Color::red = orig.red;
	Color::green = orig.green;
	Color::blue = orig.blue;
	Color::alpha = orig.alpha;
}

void Color::drawColor()
{
	glColor4f(red,green,blue,alpha);
}

void Color::setColor(const Color&amp; color)
{
	red = color.red;
	green = color.green;
	blue = color.blue;
	alpha = color.alpha;
}

void Color::exchangeColor(Color &amp; color)
{
	float temp;
	temp = red;
	Color::red = color.red;
	color.red = temp;

	temp = green;
	Color::green = color.green;
	color.green = temp;

	temp = blue;
	Color::blue = color.blue;
	color.blue = temp;

	temp = alpha;
	Color::alpha = color.alpha;
	color.alpha = temp;
}
</code></pre>
<p>Danke schonmal im Voraus</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2246857</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2246857</guid><dc:creator><![CDATA[Goldfish]]></dc:creator><pubDate>Wed, 29 Aug 2012 22:42:43 GMT</pubDate></item><item><title><![CDATA[Reply to Noch ein merkwürdiger Fehler on Wed, 29 Aug 2012 22:52:43 GMT]]></title><description><![CDATA[<p>Du hast hinter der Klasse Color das Semikolon vergessen.</p>
<pre><code class="language-cpp">class Color
{
    ...
}; // &lt;---
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/2246858</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2246858</guid><dc:creator><![CDATA[Kellerautomat]]></dc:creator><pubDate>Wed, 29 Aug 2012 22:52:43 GMT</pubDate></item><item><title><![CDATA[Reply to Noch ein merkwürdiger Fehler on Thu, 30 Aug 2012 09:20:34 GMT]]></title><description><![CDATA[<p>Oh man... da sieht man sich den Quelltext hundert mal an und merkt das nicht <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f611.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--expressionless_face"
      title="-_-"
      alt="😑"
    /><br />
Danke für die Hilfe.</p>
<p>Allerdings hab ich jetzt noch ein aller letztes Problem. ICh definiere in meiner Klasse Stone Konstanten der Klasse Color die ich auch direkt initialisiere. Wenn ich diese Objekte dann später alle verwenden will, befinden sich nur noch 0-Werte in den einzelnen Variablen für rot grün und blau.</p>
<p>also ich habe den Header meiner Klasse Stone, in dem ich die Konstanten setze.</p>
<pre><code class="language-cpp">#pragma once

#include &lt;algorithm&gt;
#include &quot;Color.h&quot;

		const Color yellow = Color ( 1.0f, 1.0f, 0.0f, 1.0f );
		const Color orange = Color ( 1.0f, 0.5f, 0.0f, 1.0f );
		const Color green  = Color ( 0.0f, 1.0f, 0.0f, 1.0f );
		const Color red    = Color ( 1.0f, 0.0f, 0.0f, 1.0f );
		const Color blue   = Color ( 0.4f, 0.4f, 1.0f, 1.0f );
		const Color black  = Color ( 0.0f, 0.0f, 0.0f, 1.0f );
enum Side
{
	Front = 1, Left = 2, Back = 3, Right = 4, Top = 5, Bottom = 6
};

enum Edge
{
	ELeft, ETop, ERight, EBottom, Non
};

class Stone{
	public:
		Color color1, color2, color3;
		enum Side side;
		Edge edge1, edge2;
		bool StoneUsed;

		Stone();		
		Stone(Side side, Edge edge1, Edge edge2);

		void overrideStone(const Stone&amp; stone );
		void exchangeColors(Stone&amp; s);
		void switchEdgesXZ();
		void switchEdgesYZCorner();
		void switchEdgesXYCorner();
	private: 
		void getSideColor(Side side, Edge edge1, Edge edge2);
		void getEdgeColor(Side side, Edge edge1, Edge edge2);
		void getFrontCornerColors(Edge edge1, Edge edge2);
		void getLeftCornerColors(Edge edge1);
		void getRightCornerColors(Edge edge1);
		void getBackCornerColors(Edge edge1, Edge edge2);
		void getTopColors();
		void getBottomColors();
};
</code></pre>
<p>Wenn ich dann allerdings im Konstruktor von Stone den Inhalt der Variable green abfrage, ist dieser einfach nur in jedem Feld 0 und ich bekomme nicht heraus, woran das liegt</p>
<pre><code class="language-cpp">Stone :: Stone(Side side, Edge edge1, Edge edge2){
	Stone::side = side;
	Stone::edge1 = edge1;
	Stone::edge2 = edge2;

		printf(&quot;green = %f, %f, %f \n&quot;,green.r, green.g, green.b);

	Stone::StoneUsed = true;

	getSideColor(side,edge1,edge2);
}
</code></pre>
<p>Ausgabe:: green = 0.000000, 0.000000, 0.000000</p>
<p>Wie die Klasse Color aussieht, kann man am vorherigen Post noch sehen. ICh hab nur die Variablen in r,g,b,a umbenannt.</p>
<p>Danke ^^</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2246933</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2246933</guid><dc:creator><![CDATA[Goldfish]]></dc:creator><pubDate>Thu, 30 Aug 2012 09:20:34 GMT</pubDate></item><item><title><![CDATA[Reply to Noch ein merkwürdiger Fehler on Thu, 30 Aug 2012 09:45:16 GMT]]></title><description><![CDATA[<p>Kann ich nicht nachvollziehen. Wenn ich den Code um alle offensichtlichen Fehler bereinige und alles nötige zusammensetze, dann kommt auch das erwartete heraus:<br />
<a href="http://ideone.com/edIw6" rel="nofollow">http://ideone.com/edIw6</a></p>
<p>Bitte dritten Link in meiner Signatur lesen!</p>
<p>P.S.: Guck dir mal an, was eine <em>Initialisierungsliste</em> ist!</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2246938</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2246938</guid><dc:creator><![CDATA[SeppJ]]></dc:creator><pubDate>Thu, 30 Aug 2012 09:45:16 GMT</pubDate></item><item><title><![CDATA[Reply to Noch ein merkwürdiger Fehler on Thu, 30 Aug 2012 09:53:11 GMT]]></title><description><![CDATA[<p>Okay, dann hab ich nur noch um so weniger Plan, wieso es nicht funktioniert.<br />
Aber wenn du schon sagst, dass es klappt, wenn du alle offensichtlichen Fehler eliminierst, wäre das ja vielleicht mal ein Ansatz... Ich wüsste jetzt nichts von offensichtlichen Fehlern...</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2246941</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2246941</guid><dc:creator><![CDATA[Goldfish]]></dc:creator><pubDate>Thu, 30 Aug 2012 09:53:11 GMT</pubDate></item><item><title><![CDATA[Reply to Noch ein merkwürdiger Fehler on Thu, 30 Aug 2012 10:06:36 GMT]]></title><description><![CDATA[<p>Goldfish schrieb:</p>
<blockquote>
<p>Okay, dann hab ich nur noch um so weniger Plan, wieso es nicht funktioniert.<br />
Aber wenn du schon sagst, dass es klappt, wenn du alle offensichtlichen Fehler eliminierst, wäre das ja vielleicht mal ein Ansatz... Ich wüsste jetzt nichts von offensichtlichen Fehlern...</p>
</blockquote>
<p>Na das Semikolon, die nicht zueinander passenden Bezeicher...</p>
<p>So das es überhaupt compiliert.</p>
<p>Wie gesagt: Dritter Link in meiner Signatur. Du hast deinen Fehler anscheinend beim Posten herausgekürzt, dafür erschlägst du uns mit hunderten von irrelevanten Zeilen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2246944</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2246944</guid><dc:creator><![CDATA[SeppJ]]></dc:creator><pubDate>Thu, 30 Aug 2012 10:06:36 GMT</pubDate></item><item><title><![CDATA[Reply to Noch ein merkwürdiger Fehler on Thu, 30 Aug 2012 10:37:04 GMT]]></title><description><![CDATA[<p>Ähm ja, deinen Verweis hab ich mir durchgelesen. Kommt nicht nochmal vor (hoffe ich). Aber ich wollte auch sicher gehen, dass ich keine Möglichkeit auslasse, da ich absolut keinen Plan hatte. Aber ich pass beim nächsten mal dann etwas mehr auf. Auf jeden Fall klappt es bei mir aus irgendeinem Grund nicht und ich kanns mir nicht erklären... ich werd mich da später nochmala mit beschäftigen. Jetzt gerade hab ich in jedem Falle erstmal die Nase voll ^^°</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2246953</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2246953</guid><dc:creator><![CDATA[Goldfish]]></dc:creator><pubDate>Thu, 30 Aug 2012 10:37:04 GMT</pubDate></item><item><title><![CDATA[Reply to Noch ein merkwürdiger Fehler on Thu, 30 Aug 2012 14:47:06 GMT]]></title><description><![CDATA[<p>okay, ich habe jetzt rausgefunden, wo das mit der Farbe schief läuft, ich weiß nur einfach nicht, WIESO es schief läuft...<br />
Ich habe es wie du vorhin nochmal probiert, das Ganze in einem Testprogram laufen zu lassen und da funktioniert es bei mir auch wunderbar... Daher kann ich mir nicht erklären, was los ist.<br />
Ich zeige jedenfalls eben erstmal chronologisch, was passiert und was die Ausgaben dazu sind.</p>
<pre><code class="language-cpp">std::vector&lt;std::vector&lt;std::vector&lt;Stone&gt;&gt;&gt; cube;
// Diesen Vektor initialisiere ich später, werde ich hier aber nicht merh mit angeben
</code></pre>
<p>Dann kommt als nächstes</p>
<pre><code class="language-cpp">string col;
	Color color = Color(green);
	col = identifyColor(color);

	printf(&quot;%s \n&quot;,col.c_str());
	printf(&quot;%f, %f, %f \n&quot;,green.r, green.g, green.b);
	printf(&quot;-------------------------------\n&quot;);

// Hier wird ganz offensichtlich der Konstruktor von Stone aufgerufen.
	cube.at(0).at(0).at(0) = Stone(Front, ELeft, ETop);

	col;
	color = Color(green);
	col = identifyColor(color);

	printf(&quot;%s \n&quot;,col.c_str());
	printf(&quot;%f, %f, %f \n&quot;,green.r, green.g, green.b);
	printf(&quot;-------------------------------\n&quot;);
</code></pre>
<p>hier gehts dann weiter</p>
<pre><code class="language-cpp">Stone :: Stone(Side side, Edge edge1, Edge edge2){
        ...

	printf(&quot;%f, %f, %f \n&quot;,green.r, green.g, green.b);
		printf(&quot;-------------------------------\n&quot;);

	getSideColor(side,edge1,edge2);

	printf(&quot;%f, %f, %f \n&quot;,green.r, green.g, green.b);
		printf(&quot;-------------------------------\n&quot;);
}
</code></pre>
<p>und die Ausgabe auf der Konsole ist folgende:</p>
<p>green<br />
0.000000, 1.000000, 0.000000<br />
-------------------------------<br />
0.000000, 0.000000, 0.000000<br />
-------------------------------<br />
0.000000, 0.000000, 0.000000<br />
-------------------------------<br />
green<br />
0.000000, 1.000000, 0.000000<br />
-------------------------------</p>
<p>also aus irgendeinem Grund spackt er rum, wenn die Klasse Stone aufgerufen wird. Vorher und nachher ist ja alles okay...<br />
Hat irgendwer einen Plan, wieso sowas passieren kann?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2247039</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2247039</guid><dc:creator><![CDATA[Goldfish]]></dc:creator><pubDate>Thu, 30 Aug 2012 14:47:06 GMT</pubDate></item><item><title><![CDATA[Reply to Noch ein merkwürdiger Fehler on Thu, 30 Aug 2012 15:19:36 GMT]]></title><description><![CDATA[<p>Ich rate mal: Das green in Stone ist ein anderes green. Mehr als Raten geht nicht ohne Code.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2247050</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2247050</guid><dc:creator><![CDATA[SeppJ]]></dc:creator><pubDate>Thu, 30 Aug 2012 15:19:36 GMT</pubDate></item><item><title><![CDATA[Reply to Noch ein merkwürdiger Fehler on Thu, 30 Aug 2012 15:35:58 GMT]]></title><description><![CDATA[<p>leider nein. Es gibt keine andere Variable green.<br />
Ich werd stattdessen einfach mal deinen beitrag von vorher ignorieren und werde jetzt mal die entsprechenden Codestücke posten die ich dazu habe.</p>
<p>Die Headerdatei Cube.h</p>
<pre><code class="language-cpp">#pragma once

#include &quot;Stone.h&quot;
#include &lt;string&gt;
#include &lt;vector&gt;

class Cube{
	public:
		std::vector&lt;std::vector&lt;std::vector&lt;Stone&gt;&gt;&gt; cube;
		int cubesize;
		Cube() {  }
		Cube(int cubesize);
		static std::string identifyColor(Color&amp; color);
	private:
		bool isCorner(int x, int y, int z);
		void setStone(int x, int y, int z);		
};
</code></pre>
<p>Die entsrechende .cpp Datei</p>
<pre><code class="language-cpp">#include &quot;Cube.h&quot;

using namespace std;

	Cube :: Cube(int sizeOfCube)
	{
		cubesize = sizeOfCube;

		for(int x = 0; x &lt; cubesize; x++)
		{
			vector&lt;vector&lt;Stone&gt;&gt; side (cubesize);
			cube.push_back(side);
			for(int y = 0; y &lt; cubesize; y++)
			{
				vector&lt;Stone&gt; line (cubesize);
				cube.at(x).push_back(line);
				for(int z = 0; z &lt; cubesize; z++)
				{   
					cube.at(x).at(y).push_back(Stone());
				}				
			}
		}

		// Stein vorne oben links mit Farben grün-rot-gelb

		string col;
		Color color = Color(green);
		col = identifyColor(color);

		printf(&quot;%s \n&quot;,col.c_str());
		printf(&quot;%f, %f, %f \n&quot;,green.r, green.g, green.b);
		printf(&quot;-------------------------------\n&quot;);

		cube.at(0).at(0).at(0) = Stone(Front, ELeft, ETop);

		col;
		color = Color(green);
		col = identifyColor(color);

		printf(&quot;%s \n&quot;,col.c_str());
		printf(&quot;%f, %f, %f \n&quot;,green.r, green.g, green.b);
		printf(&quot;-------------------------------\n&quot;);
	... // alles darunter ist aktuell auskommentiert
</code></pre>
<p>und obwohl der Rest durch oben schon bekannt ist, füg ich es trotzdem nochmal hinzu, damit man sich das Scrollen sparen kann</p>
<pre><code class="language-cpp">#pragma once

#include &quot;Color.h&quot;
#include &lt;algorithm&gt;

		const Color yellow = Color ( 1.0f, 1.0f, 0.0f, 1.0f );
		const Color orange = Color ( 1.0f, 0.5f, 0.0f, 1.0f );
		const Color green  = Color ( 0.0f, 1.0f, 0.0f, 1.0f );
		const Color red    = Color ( 1.0f, 0.0f, 0.0f, 1.0f );
		const Color blue   = Color ( 0.4f, 0.4f, 1.0f, 1.0f );
		const Color black  = Color ( 0.0f, 0.0f, 0.0f, 1.0f );

enum Side
{
	Front = 1, Left = 2, Back = 3, Right = 4, Top = 5, Bottom = 6
};

enum Edge
{
	ELeft, ETop, ERight, EBottom, Non
};

class Stone{
	public:
		Color color1, color2, color3;
		Side side;
		Edge edge1, edge2;
		bool StoneUsed;

		Stone();		
		Stone(Side side, Edge edge1, Edge edge2);

		... // das ist alles unwichtig
};
</code></pre>
<pre><code class="language-cpp">Stone :: Stone(Side side, Edge edge1, Edge edge2){
	... // nur initialisierungen	

	printf(&quot;%f, %f, %f \n&quot;,green.r, green.g, green.b);
		printf(&quot;-------------------------------\n&quot;);

	getSideColor(side,edge1,edge2);

	printf(&quot;%f, %f, %f \n&quot;,green.r, green.g, green.b);
		printf(&quot;-------------------------------\n&quot;);
}

... // auch alles uninteressant
</code></pre>
<p>Und die Klasse Color is ja klar. Hattest du ja auch schon getestet.</p>
<p>Im Prinzip wird nur ein Objekt der Klasse Cube erzeugt und im Folgenden gehts halt schief...</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2247055</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2247055</guid><dc:creator><![CDATA[Goldfish]]></dc:creator><pubDate>Thu, 30 Aug 2012 15:35:58 GMT</pubDate></item><item><title><![CDATA[Reply to Noch ein merkwürdiger Fehler on Thu, 30 Aug 2012 17:20:42 GMT]]></title><description><![CDATA[<p>Goldfish schrieb:</p>
<blockquote>
<p>Ich werd stattdessen einfach mal deinen beitrag von vorher ignorieren und werde jetzt mal die entsprechenden Codestücke posten die ich dazu habe.</p>
</blockquote>
<p>Ja, das ist eine sehr zielorientierte Methode <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="🙄"
    /> . Wenn man denn mal 15 Minuten investiert hat, um deinen Dreck zum laufen zu bekommen, dann funktioniert's auch:<br />
<a href="http://ideone.com/JHc2K" rel="nofollow">http://ideone.com/JHc2K</a></p>
<p>Da du offensichtlich nicht willens bist, irgendetwas selber zu tun, sondern darauf wartest, bis dir irgendein Mitleidiger deine Probleme wegzaubert, verabschiede ich mich mal aus dem Thread...</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2247083</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2247083</guid><dc:creator><![CDATA[SeppJ]]></dc:creator><pubDate>Thu, 30 Aug 2012 17:20:42 GMT</pubDate></item><item><title><![CDATA[Reply to Noch ein merkwürdiger Fehler on Thu, 30 Aug 2012 18:08:55 GMT]]></title><description><![CDATA[<p>lol... ich weiß noch immer nicht was los ist, aber ich habs gelöst...<br />
Ich hab einfach ein neues Projekt erstellt, die Dateien in das neue Projekt eingefügt und siehe da, der Fehler ist weg...<br />
auf einmal funktioniert es... also wenn das mal nicht unlogisch ist...</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2247096</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2247096</guid><dc:creator><![CDATA[Goldfish]]></dc:creator><pubDate>Thu, 30 Aug 2012 18:08:55 GMT</pubDate></item></channel></rss>