For example, I have this code example:
class Player { int grid; Player() { grid = 0; } } void main() { Player p; ... ... //now again I want to initialize p here, what to write ? }
How do I call the constructor p again?
Add init function. Call it in the constructor, but also make it public, so you can call later.
init
In fact, you can make any function you want to change:
class Player { public: void setState(/*anything you want*/) {} };
Place the object in a local area:
while (running) { Player p; // fresh //... }
Each time the loop body is executed, a new Player object is created.
Player
class Player { int grid; Player() { grid = 0; } } void main() { Player p; ... ... //now again I want to initialize p here, what to write ? p = Player(); }
Reinforcement Andrew replies:
class Player { public: Player() { reset(); //set initial values to the object } //Must set initial values to all relevant fields void reset() { m_grid = 0; //inital value of "m_grid" } private: int m_grid; } int main() { Player p1; Player* p2 = new Player(); ... ... p1.reset(); p2->reset(); //Reset my instance without create a new one. }