Ahoj,
chtěl jsem se zeptat, jak má vypadat hlavičkový soubor s šablonou a k němu příslušný soubor s kódem.
např.:
hlavní soubor - fvm.cpp
#include <iostream>
#include <cstdlib>
#include "funcs.h"
using namespace std;
int main(int argc, char *argv[]){
pole<float> pole_u(14,4);
....
------------------------------
hlavičkový soubor funcs.h
template <class T> class pole{
public:
pole(unsigned NX, unsigned NY){ };//konstruktor
....
-------------------------------
soubor funcs.cpp
#include <iostream>
using namespace std;
template <class T> class pole{
.....
Takhle se mi to zkompiluje, ale program hlási SIGSEGV, když nakopíruju kód z func.cpp do func.h, tak je vše OK.
Prosím o pomoc nebo odkaz na nějký článek, dlouho sem googlil ale nic relevantního. Díky
Fórum › C / C++
Template header
Pokiaľ chceš mať definície v samostatnom súbore (*.cpp) musí tvoj kompilátor podporovať kľúčové slovo export, takto:
funcs.cpp
export template<typename T>
foo::foo()
{
...
}
v opačnom prípade budeš musieť dať definície do rovnakého súboru ako deklarácie (*.h).
Podporou klíčového slova export je proslulý kompilátor Comeau C++, něco více (moc ne) se dočtete zde
http://en.wikipedia.org/wiki/Comeau_C/C%2B%2B
Tam pak najdete odkaz na domovské stránky comeaucomputing, kde je možno komilátor stáhnout.
Zjistit počet nových příspěvků
Přidej příspěvek
Toto téma je starší jak čtvrt roku – přidej svůj příspěvek jen tehdy, máš-li k tématu opravdu co říct!
Ano, opravdu chci reagovat → zobrazí formulář pro přidání příspěvku
×Vložení zdrojáku
×Vložení obrázku
×Vložení videa
Aktuálně jsou podporována videa ze serverů YouTube, Vimeo a Dailymotion.
×
Uživatelé prohlížející si toto vlákno
Uživatelé on-line: 0 registrovaných, 133 hostů
Podobná vlákna
Template class dedi template class — založil vitamin
Header — založil JeanBabtisteGrenouille
Moderátoři diskuze