I have a class Game which contains an other object GameGrid:
Game.h
class Game
{
        public:
            Game(uint32_t GridSize);
        private:
            GameGrid _CurrentGrid;
}
Game.cpp
Game::Game(uint32_t GridSize) : _CurrentGrid(GridSize)
{
}
GameGrid.h
class GameGrid
{       
        public:
            GameGrid(uint32_t GridSize);
            void setGrid(const Grid& Grid);
            const GameGrid::Grid getGrid(void) const;
        private:
            Grid _Grid;
}
GameGrid.cpp
GameGrid::GameGrid(uint32_t GridSize)
{
    uint32_t i = 0;
    uint32_t j = 0;
    _Grid.assign(GridSize, std::vector<unsigned int>(GridSize));
    for (i = 0; i < GridSize; i++)
    {
        for (j = 0; j < GridSize; j++)
        {
            _Grid.at(i).at(j) = 0;
        }
    }
}
void GameGrid::setGrid(const GameGrid::Grid& Grid)
{
    _Grid = Grid;
}
const GameGrid::Grid GameGrid::getGrid(void) const
{
    return _Grid;
}
Now I have my application, which uses the game class
Game* MyGame = new Game(4);
How can I create a copy function for this pointer to the Game-Object, so that I can clone the object.
I´ve tried it with the assignment operator
Game& operator=(Game const& Ref);
Game& Game::operator=(Game const& Ref)
{
    if (&Ref != this)
    {
        this->~Game2048();
        new (this) Game2048(Ref);
    }
    return *this;
}
But this solution doesn´t work and my original object got changed too, when I change the clone.
Does someone has a hint for me?
Thank you!
 
     
    