[C++] Zweite Klasse wird nicht aufgerufen

elbdom

Mitglied
Hallo,
Mein Compiler compiliert das Programm soweit ohne Fehler nur ein paar Warnungen kommen, aber wen ich es dann starte und dann bei "Neu Spielen" Würfeln tue gibt er den Inhalt von der Klasse cNeuW nicht aus.
Was mach ich Falsch bez. was muss ich ändern damit es geht

Compiler: Borland C++ 5.5.1

Warnun:
Warning W8027 kde-Kniffel3.cpp 68: Functions containing for are not expanded inl
ine
Warning W8066 kde-Kniffel3.cpp 76: Unreachable code in function cNeuW::neuwuerfe
ln()

code:

Code:
//KDE-Kniffel version 0.1 beta by Mitsuomi-san
#include <Iostream>
#include <cstdlib>
#include <ctime>

using namespace std;

class cWuerfeln
{
	public:
	//variablen
	int nW1;
	int nW2;
	int nW3;
	int nW4;
	int nW5;

	//funktion
	void ZeigeDaten ()
	{
	 srand( (unsigned)time( NULL ) );
	 nW1 = rand() % 6 + 1;
	 cout << "W1: " << nW1 << endl;
	 cout << "Weiter mit Return..." << endl; 
	 cin.get();
	 cin.get();
	 srand( (unsigned)time( NULL ) );
	 nW2 = rand() % 6 + 1;
	 cout << "W2: " << nW2 << endl;
	 cout << "Weiter mit Return..." << endl; 
	 cin.get(); 
	 srand( (unsigned)time( NULL ) );
	 nW3 = rand() % 6 + 1;
	 cout << "W3: " << nW3 << endl;
	 cout << "Weiter mit Return..." << endl; 
	 cin.get(); 
	 srand( (unsigned)time( NULL ) );
	 nW4 = rand() % 6 + 1;
	 cout << "W4: " << nW4 << endl;
	 cout << "Weiter mit Return..." << endl; 
	 cin.get(); 
	 srand( (unsigned)time( NULL ) );
	 nW5 = rand() % 6 + 1;
	 cout << "W5: " << nW5 << endl;
	 cout << "Weiter mit Return..." << endl; 
	 cin.get(); 
	 // ausgabe der würfel
	 cout << "\n" << "W1: " << nW1 << "\n" << "W2: " << nW2 << "\n" << "W3: " << nW3 << "\n" << "W4: " << nW4 << "\n" << "w5: " << nW5 << "\n" <<  endl;

	}
};

class cNeuW
{
	public:
	//variablen
	int nNeuW;
	int nAnzahl;
	int nWurf;
	int nZahl;
	cWuerfeln spiel1; //wuerfel des spielers

	//funktion
	void neuwuerfeln ()
  {

	nWurf = 3;
	for (int i1=0; i1 < nWurf; i1++)
	{
	nAnzahl = 3;
	//for-Schleife für neu würfeln
	 for (int i=0; i < nAnzahl; i++)
	 {
	  switch (nZahl)
	  {
	  cout << "Welchen wuerfel willst du neu wuerfeln?" << endl;
	  cout << " 1 für ersten Wuerfel, 2 für zweiten Wuerfel... usw \n drück 6 um alle nochmal neu zu wuerfeln" << endl;
	  cin >> nZahl;
	  cout << "\n" << endl;

	  case (1):
		{
	 	srand( (unsigned)time( NULL ) );
	 	spiel1.nW1 = rand() % 6 + 1;
	 	cout << "W1: " << spiel1.nW1 << endl;
	 	cout << "Weiter mit Return..." << endl; 
	 	cin.get();
	 	cin.get();
		}break;
	  case (2):
		{
		srand( (unsigned)time( NULL ) );
	 	spiel1.nW1 = rand() % 6 + 1;
	 	cout << "W2: " << spiel1.nW2 << endl;
	 	cout << "Weiter mit Return..." << endl; 
	 	cin.get();
	 	cin.get();
		}break;
	  case (3):
		{
	 	srand( (unsigned)time( NULL ) );
	 	spiel1.nW1 = rand() % 6 + 1;
	 	cout << "W3: " << spiel1.nW3 << endl;
	 	cout << "Weiter mit Return..." << endl; 
	 	cin.get();
	 	cin.get();
		}break;
	  case (4):
		{
	 	srand( (unsigned)time( NULL ) );
	 	spiel1.nW1 = rand() % 6 + 1;
	 	cout << "W4: " << spiel1.nW4 << endl;
	 	cout << "Weiter mit Return..." << endl; 
	 	cin.get();
	 	cin.get();
		}break;
	  case (5):
		{
	 	srand( (unsigned)time( NULL ) );
	 	spiel1.nW1 = rand() % 6 + 1;
	 	cout << "W5: " << spiel1.nW5 << endl;
	 	cout << "Weiter mit Return..." << endl; 
	 	cin.get();
	 	cin.get();
		}break;
	  case (6):
		{
		 srand( (unsigned)time( NULL ) );
		 spiel1.nW1 = rand() % 6 + 1;
		 cout << "W1: " << spiel1.nW1 << endl;
		 cout << "Weiter mit Return..." << endl; 
		 cin.get();
		 cin.get();
		 srand( (unsigned)time( NULL ) );
		 spiel1.nW2 = rand() % 6 + 1;
		 cout << "W2: " << spiel1.nW2 << endl;
		 cout << "Weiter mit Return..." << endl; 
		 cin.get(); 
		 srand( (unsigned)time( NULL ) );
		 spiel1.nW3 = rand() % 6 + 1;
		 cout << "W3: " << spiel1.nW3 << endl;
		 cout << "Weiter mit Return..." << endl; 
		 cin.get(); 
		 srand( (unsigned)time( NULL ) );
		 spiel1.nW4 = rand() % 6 + 1;
		 cout << "W4: " << spiel1.nW4 << endl;
		 cout << "Weiter mit Return..." << endl; 
		 cin.get(); 
		 srand( (unsigned)time( NULL ) );
		 spiel1.nW5 = rand() % 6 + 1;
		 cout << "W5: " << spiel1.nW5 << endl;
		 cout << "Weiter mit Return..." << endl; 
		 cin.get();
		}break;
	  case (7):
		{
		cout << "Es worde nicht neu gewuerfelt" << endl;
		}break;
	  }
	 }

	}
  }
};

int main()

{
	//variablen
	char chMenu;
	cWuerfeln spiel; //wuerfel des spielers
	cNeuW neuw; //neu Wurfeln

	// Menü
	cout << "Wilkommen im KDE-Kniffel" << endl;
	cout << " " << endl;
	cout << "(N)eues Spiel" << endl;
	cout << "(A)bout" << endl;
	cout << "(E)nde" << endl;

	// chMenu
	cout << "Menu eingabe: " << endl;
	cin >> chMenu;

	switch (chMenu)
	{
		case ('n'):
		case ('N'):
		{
		 // Spiel
		 cout << "Spiel start" << endl;
		 // Variablen
		int nSchleife;
		int nSchleife2;
		int nEiner = 0;
		int nZweier = 0;
		int nDreier = 0;
		int nVierer = 0;
		int nFuenfer = 0;
		int nSechser = 0;

		while (nSchleife != 2)
		 {
		  //Punkte liste
		  cout << "Einer  : " << nEiner << endl;
		  cout << "Zweiter: " << nZweier << endl;
		  cout << "Dreier : " << nDreier << endl;
		  cout << "Vierer : " << nVierer << endl;
		  cout << "Fuenfer: " << nFuenfer << endl;
		  cout << "Sechser: " << nSechser << "\n" << endl;

		  cout << "Wehle: \n" << endl;
		  cout << "1. Wuerfeln" << endl;
		  cout << "2. Spiel Beenden \n" << endl;
		  cin >> nSchleife; 

		  if (nSchleife == 1)
			//würfeln
			switch (nSchleife)
			{
		case (1):
			{
 			spiel.ZeigeDaten ();
			neuw.neuwuerfeln ();
			}break;
		case (2):
			{
			cout << "Fehler auf nSchleife" << endl;
			}break;
			}
		  else if (nSchleife == 2)
			// ende
			cout << "\n" << "Spiel zu ende Punkte: " << nEiner + nZweier + nDreier + nVierer + nFuenfer + nSechser << "\n" << endl;
		  else
			cout << "> Falsche Eingabe! <" <<endl;
			
		}

		} break;

		case ('a'):
		case ('A'):
		{
		// About
		cout << "\n" << endl;
		cout << "KDE-Kniffel v 0.1 Beta" << endl;
		cout << "Code By Mitsuomi-San" << endl;
		cout << " Thx 4 Visit the Game\n" << endl;
		} break;

		case ('e'):
		case ('E'):
		{
		// ende
		} break;

		default:
		{
		cout << "Falsche Eingabe!\n\n";

		}

	}
	cout << "Bis zum naechsten Mal!" << endl;
	cin.get();
	cin.get();
	return 0;
}
 
Also wenn ich den Code kopiere und mit Visual C++ kompiliere, würfelt er einwandfrei. :)
Dafür gibts ein paar andere Warnungen:

warning C4101: 'nSchleife2': Unreferenzierte lokale Variable
warning C4700: Die nicht initialisierte lokale Variable "nSchleife" wurde verwendet.
 
soo habe nur 1 mal srand drinne plos ändert das immernochnicht das problem >.<

@engelmarkus das sitn ur ne variable die ich ncihtmerh nutze udn vergessen habe raus zu machen ;)
 
Zuletzt bearbeitet:
Hi.

Du hast dort Code in der switch-Anweisung, der nicht erreicht werden kann:
C++:
	  switch (nZahl)
	  {
	  cout << "Welchen wuerfel willst du neu wuerfeln?" << endl;
	  cout << " 1 für ersten Wuerfel, 2 für zweiten Wuerfel... usw \n drück 6 um alle nochmal neu zu wuerfeln" << endl;
	  cin >> nZahl;
	  cout << "\n" << endl;

	  case (1):
   // ...
Gruß
 
Der Code muss vor das switch.

Code:
for (int i=0; i < nAnzahl; i++)
	 {
	  cout << "Welchen wuerfel willst du neu wuerfeln?" << endl;
	  cout << " 1 für ersten Wuerfel, 2 für zweiten Wuerfel... usw \n drück 6 um alle nochmal neu zu wuerfeln" << endl;
	  cin >> nZahl;
	  cout << "\n" << endl;

	  switch (nZahl)
	  {
	  case (1):
		{
 
Zurück