Variablen Zugriff

Heinzi1991

Erfahrenes Mitglied
Also ich habe in einer Klasse(Next) eine Funktion erstellt die einen Return - Wert einer Funktion einer anderen Klasse(Game) ausgibt, nun meine Frage kann ich in meiner (Next)-Funktion diese Variabel von der (Game)-Klasse erhöhen oder verändern, wenn ja wie?
 
Hallo Heinzi1991

Bitte mehr Details, wie sieht die Funktion aus? Was für ein Wert wird zurückgegeben? Wie sieht der aus? Welche Variable willst du erhöhen? Am besten einfach Code.

Viele Grüsse
Cromon
 
also die (Next)-Funktion schaut so aus:

Code:
int Next::execute(Game& board, vector<string>& params)
{
	if(params.size() == 2)
	{
		cout << "Round: " << board.getCurrentTick() << endl;

	}

......

die (Game)-Funktion schaut so aus:
Code:
int Game::getCurrentTick()
{
	int CurrentTick = 1;

	return CurrentTick;
}


Mein Anliegen wäre immer wenn ich next aufrufe, dass sich der CurrentTIck um eins erhöht!
 
Mach CurrentTick einen Member von Game und entweder eine Funktion die inkrementiert oder inkrementiere jedes mal wenn getCurrentTick aufgerufen wird.
 
Hallo Heinzi1991

Woran scheiterst du? Am anlegen einer Membervariablen oder an deren Erhöhung? Beides absoluter Grundlagenstoff. Sollte eines davon ein Problem sein empfehle Ich da nochmals die Lektüre zu konsultieren.

Grüsse
Cromon
 
so ich scheitere an den einfachsten sachen! mein problem ist zurzeit wenn ich in meiner private unsigned int current_tick einbaue, erhält er irgendwelche zahlen aus dem speicher und dann funktioniert es, nur mein problem ist das ich halt mein current_tick auf 0 initialisieren will und wenn ich das machen will funktioniert es wieder einmal nicht! Bei mir sieht es dann so aus:

ass2> next
Round: 1
ass2> next
Round: 1
usw.

aussehen soll es so:

ass2> next
Round: 1
ass2> next
Round: 2


ich weiß einfach nicht was ich falsch mache, und steh voll auf der leitung! tut mir leid das ich euch mit grundstoff - sachen nerve, aber ich weiß wirklich nicht mehr weiter!


meine (Game) - Funktion schaut ja schon so aus:
Code:
int Game::getCurrentTick()
{
	current_tick += 1;

	return current_tick;
}
 
Du machst CurrentTick als member von Game und initialisierst es mit 0. Danach kannst du dann ganz einfach inkrementieren. (CurrentTick++)
 
C++:
class Game {
     public:
     int getCurrentTick(void);

     private:
     int currentTick = 0;
};

int Game::getCurrentTick(void) {
    currentTick++;

    return currentTick;
}

Du solltest dir auf jeden fall nochmals die Grundlagen durchlesen.
 

Neue Beiträge

Zurück