[c++]szablon metody
Ostatnio zmodyfikowano 2014-04-29 15:07
Szary Temat założony przez niniejszego użytkownika |
[c++]szablon metody » 2014-04-28 21:10:43 Hej mam szablon i działa poprawnie. Problem zaczyna się gdy wywołuję go po przez obiekt tej klasy. Jeżeli jest on wykonywany w innej metodzie tej klasy lub jako "luźna funkcja" to działa. W ogóle nie rozumiem o co chodzi. #include <iostream> #include "Universal.h" using namespace std;
auto main( int argc, char arg[] )->int { Universal * univ = new Universal; int dlugosc = 9; char * znak = new char[ dlugosc ]; znak = "abcdefghi"; char * tab = new char[ dlugosc ]; univ->flipArray( znak, tab, dlugosc ); for( int i = 0; i < dlugosc; i++ ) std::cout << tab[ i ] << ", "; std::cin.get(); }
#include "Universal.h"
Universal::Universal() { }
Universal::~Universal() { }
int * Universal::shareOnNumbers( int n, int lenght ) { int * number = new int[ lenght ]; for( int i = 0; i < lenght; i++ ) { number[ i ] = n % 10; n /= 10; } int * correcteArray = new int[ lenght ]; flipArray( number, correcteArray, lenght ); return correcteArray; }
template < class T > void Universal::flipArray( T reverseArray, T correcteArray, int lenght ) { lenght -= 1; for( int i = 0; lenght >= 0; --lenght, ++i ) { correcteArray[ i ] = reverseArray[ lenght ]; } }
#pragma once class Universal { public: Universal(); ~Universal(); int * shareOnNumbers( int, int ); template < class T > void flipArray( T, T, int ); };
1>Main.obj : error LNK2019: unresolved external symbol "public: void __thiscall Universal::flipArray<char *>(char *,char *,int)" (??$flipArray@PAD@Universal@@QAEXPAD0H@Z) referenced in function _main 1>C:\Users\Szary\Documents\Visual Studio 2013\Projects\C++\Universal\Debug\Universal.exe : fatal error LNK1120: 1 unresolved externals ========== Kompilacja: 0 zakończono powodzeniem, 1 zakończono niepowodzeniem, 0 zaktualizowano, 0 pominięto ==========
|
|
Monika90 |
» 2014-04-28 21:16:44 Pezenieś defincję szablonu funkcji do pliku nagłówkowego. |
|
Szary Temat założony przez niniejszego użytkownika |
» 2014-04-28 21:17:55 Szablony muszą być inline? |
|
Monika90 |
» 2014-04-28 21:19:57 Nie muszą. |
|
michal11 |
» 2014-04-29 15:07:58 Ale nie mogą być w pliku .cpp bo nie są kompilowane. |
|
« 1 » |