Ich bin neu in C++ und begann vor kurzem mit Klassen arbeiten für eine Schule excepcice. Ich kann wirklich nicht sehen, was falsch ist und nachdem ich ein Objekt "player" zur Hero-Klasse erstellt habe, kann ich dieses Objekt später nicht mehr in der "Hauptmenü" -Funktion verwenden, um eine Methode aufzurufen, weil ich den "identifier is undefined" -Fehler bekomme!Objekt ist undefiniert in Funktion
Irgendwelche Vorschläge?
#include "stdafx.h"
#include <iostream>
#include <string>
#include <cstdlib>
using namespace std;
class Hero
{
private:
//member variables
string playername;
public:
//constructor
Hero(string name)
{
playername = name;
}
string getName()
{
return playername;
}
};
//start 1
void mainMenu()
{
cout << " - - - |" << player.getName() << "- - - \n";
}
void setPlayer()
{
string name;
cout << "Hello, what is your name? " << endl;
getline(cin, name);
Hero player(name);
mainMenu();
}
int main()
{
int selection;
cout << "Shadow of darkness\n ";
cout << "1.) Start ";
cout << "2.) Exit ";
cin >> selection;
if (selection == 1)
setPlayer();
else if (selection == 2)
exit (0);
else
main();
return 0;
}
Holen Sie sich ein [Buch] (http://stackoverflow.com/questions/388242/the-definitive-c-book-guide-and-list) und überspringen Sie keine Kapitel. Und drücken Sie die Return-Taste seltener und systematischer. – LogicStuff
Ihre Frage fällt in eine Kategorie, die [diesen Link] (https://ericlippert.com/2014/03/05/how-to-debug-small-programs/) zu einem Muss macht. – StoryTeller
'player' wird im Rahmen von' setPlayer' deklariert, Bezeichner sind an den Gültigkeitsbereich gebunden, in dem sie deklariert sind. Es sieht so aus, als ob du eine Menge Informationen verpasst hast, wenn du den anderen Code ansiehst. Das Lernen mit "_and_ guessing" funktioniert nicht wirklich in C++. – George