Stilllegung des Forums
Das Forum wurde am 05.06.2023 nach über 20 Jahren stillgelegt (weitere Informationen und ein kleiner Rückblick).
Registrierungen, Anmeldungen und Postings sind nicht mehr möglich. Öffentliche Inhalte sind weiterhin zugänglich.
Das Team von spieleprogrammierer.de bedankt sich bei der Community für die vielen schönen Jahre.
Wenn du eine deutschsprachige Spieleentwickler-Community suchst, schau doch mal im Discord und auf ZFX vorbei!
Werbeanzeige
C-/C++-Quelltext |
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 |
template<class T> class ResourceManager { public: T *getResource(const std::string& name) { ResourceMap::iterator iter = this->resources.find(name); if (iter == this->resources.end()) return nullptr; return &(iter->second); } protected: typedef std::unordered_map<std::string, T> ResourceMap; private: ResourceMap resources; }; |
idontknow
unregistriert
Community-Fossil
Beruf: Teamleiter Mobile Applikationen & Senior Software Engineer
Zitat von »Jonathan_Klein«
Was die Idee mit den Handles bringen soll, versteh ich ehrlich gesagt nicht, willst du dir anhand eine Handels ständig die Ressource neu holen?
Zitat
Und eine Proxyklasse, nun, welchen Mehrwert hätte die genau? Es macht keinen Sinn, dein Programm durch weitere Klassen komplexer zu machen, nur weil es "cool aussieht". Entweder du hast eine klare Notwendigkeit und wirst dieser durch eine Klasse gerecht, oder du hältst es so einfach wie möglich (was immer der bessere weg ist).
C-/C++-Quelltext |
|
1 2 |
typedef T ResourceType; ResourceType *getResource(const std::string& name); |
C-/C++-Quelltext |
|
1 2 3 4 5 6 7 8 9 10 11 12 |
// template<typename T> // using Pointer = std::weak_ptr<T>; typedef std::weak_ptr<ResourceType> ResourcePointer; ... // auto ResourceManager::Resource<ResourceType>(Pointer<ResourceType>& pointer, const std::string& name) -> void; auto ResourceManager::Resource(ResourcePointer& pointer, const std::string& name) -> void; ... // Pointer<ResourceType> resource(nullptr); ResourcePointer resource(nullptr); manager.Resource(resource, "Bla"); |
C-/C++-Quelltext |
|
1 |
auto ResourceManager::CreateResource(const std::string& name) -> ResourceType; |
Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von »H5::« (03.02.2013, 18:43)
Werbeanzeige