#include <iostream>
#include <memory>
#include <string>
// Base class
class GameObject {
public:
virtual void update() = 0;
virtual ~GameObject() {}
};
// Derived classes
class Player : public GameObject {
public:
void update() override {
std::cout << "Updating Player" << std::endl;
}
};
class Enemy : public GameObject {
public:
void update() override {
std::cout << "Updating Enemy" << std::endl;
}
};
// Factory class
class GameObjectFactory {
public:
static std::unique_ptr<GameObject> createGameObject(const std::string &type) {
if (type == "Player") {
return std::make_unique<Player>();
} else if (type == "Enemy") {
return std::make_unique<Enemy>();
}
return nullptr;
}
};
// Client code
int main() {
auto player = GameObjectFactory::createGameObject("Player");
auto enemy = GameObjectFactory::createGameObject("Enemy");
player->update();
enemy->update();
return 0;
}
How do I avoid rehashing overhead with std::set in multithreaded code?
How do I find elements with custom comparators with std::set for embedded targets?
How do I erase elements while iterating with std::set for embedded targets?
How do I provide stable iteration order with std::unordered_map for large datasets?
How do I reserve capacity ahead of time with std::unordered_map for large datasets?
How do I erase elements while iterating with std::unordered_map in multithreaded code?
How do I provide stable iteration order with std::map for embedded targets?
How do I provide stable iteration order with std::map in multithreaded code?
How do I avoid rehashing overhead with std::map in performance-sensitive code?
How do I merge two containers efficiently with std::map for embedded targets?