Problem z Szablonem Link2019 C++
Ostatnio zmodyfikowano 2018-01-27 15:06
Wuwus1 Temat założony przez niniejszego użytkownika |
Problem z Szablonem Link2019 C++ » 2018-01-27 14:57:09 Jestem w trakcie pisania lodera obiektów do mojej gry. Zgodnie z książką, którą kupiłem stworzyłem klasę szablonową. Jednak gdy próbuje użyć którejś funkcji (nawet konstruktor i destruktor) to dostaje błąd LINK2019. Oto kod którego używam. Plik ResourceLoader.h #ifndef RESOURCELOADER_H_ #define RESOURCELOADER_H_
#include <map> #include <SFML\Graphics.hpp> #include <memory> #include <iostream> #include <assert.h>
namespace Textures { enum ID { Player, Sword, Desert, Toilet, Metro, Illusive, UnderWater }; }
template < typename Resource, typename Identifier > class ResourceHolder { public: ResourceHolder(); ~ResourceHolder(); void load( Identifier id, const std::string & filepath ); private: std::map < Identifier, std::unique_ptr < Resource >> ResourceMap; }; #endif
Plik ResourceLoader.cpp template < typename Resoucre, typename Identifier > ResourceHolder < Resoucre, Identifier >::ResourceHolder() { }
template < typename Resoucre, typename Identifier > ResourceHolder < Resoucre, Identifier >::~ResourceHolder() { }
template < typename Resource, typename Identifier > void ResourceHolder < Resource, Identifier >::load( Identifier id, const std::string & filepath ) { std::unique_ptr < Resource > resource( new Resource() ); if( !resource->LoadFromFile( filepath ) ) std::cout << "Loda from file error file: " << filepath << " is broken\n"; auto inserted = ResourceMap.insert( std::make_pair( id, std::move( resource ) ) ); assert( inserted.second ); }
plik main.cpp (wycinek) ResourceHolder < sf::Texture, Textures::ID > rh; rh.load( Textures::ID::Metro, "Textures\Maps\Metro.png" );
Szukałem pomocy w internecie ale po 3 godzinach prób naprawienia już sam nie wiem co zrobić. |
|
pekfos |
» 2018-01-27 15:00:06 Szablony się implementuje w pliku nagłówkowym. |
|
Wuwus1 Temat założony przez niniejszego użytkownika |
» 2018-01-27 15:06:24 Dzięki za przypomnienie. Właśnie zajrzałem do książki i zacząłem się zastanawiać czemu wszystkie metody są w pliku nagłówkowym. Jeszcze raz dzięki za przypomnienie :). |
|
« 1 » |