Zmieniono Square * na std::shared_ptr<Square>, żeby nie martwić się delete...