Forum » Programiranje » [C++] Linker error
[C++] Linker error
Loaded ::
Lp
Torej imam error ki mi para živce..imam tri datoteke(definicijo, implementacijo ter glavni program)...zgleda da ne najde implementacije.
V Dev-C++ mi javi linker error na konstruktor, ker ga rabim ko ustvarjam objekt...v Visul studio mi javi
Obilo zabave...:D
Torej imam error ki mi para živce..imam tri datoteke(definicijo, implementacijo ter glavni program)...zgleda da ne najde implementacije.
V Dev-C++ mi javi linker error na konstruktor, ker ga rabim ko ustvarjam objekt...v Visul studio mi javi
1>------ Build started: Project: seznam, Configuration: Debug Win32 ------ 1>Linking... 1>main.obj : error LNK2019: unresolved external symbol "public: __thiscall seznam<int>::~seznam<int>(void)" (??1?$seznam@H@@QAE@XZ) referenced in function _main 1>main.obj : error LNK2019: unresolved external symbol "public: __thiscall seznam<int>::seznam<int>(void)" (??0?$seznam@H@@QAE@XZ) referenced in function _main 1>D:\programiranje\Podatkovne strukture\Naloga01\seznam\Debug\seznam.exe : fatal error LNK1120: 2 unresolved externals 1>Build log was saved at "file://d:\programiranje\Podatkovne strukture\Naloga01\seznam\seznam\Debug\BuildLog.htm" 1>seznam - 3 error(s), 0 warning(s) ========== Build: 0 succeeded, 1 failed, 0 up-to-date, 0 skipped ========== Tu so datoteke....ne vem kaj naj ... #ifndef _SEZNAM_H_ #define _SEZNAM_H_ template <class T> class seznam { protected: struct element{ int vrednost; element* k_nasl; }; element* k_zacetek; int velikost_seznama; public: seznam(); seznam(const seznam& s); ~seznam(); void vstavi(int indeks, const T& vred); void vrini(int indeks, const T& vred); void brisi(int indeks); T vrni(int indeks) const; int isci(const T& vred) const; bool prazen() const; int velikost() const; }; #endif -------------------------------------------------------------------------------------------- #include <iostream> #include "seznam.h" using namespace std; template <class T> seznam<T>::seznam() { k_zacetek = NULL; velikost_seznama = 0; } template <class T> seznam<T>::seznam(const seznam& s) { } template <class T> seznam<T>::~seznam() { } template <class T> void seznam<T>::vstavi(int indeks, const T& vred) { } template <class T> void seznam<T>::vrini(int indeks, const T& vred) { } template <class T> void seznam<T>::brisi(int indeks) { } template <class T> T seznam<T>::vrni(int indeks) const { } template <class T> int seznam<T>::isci(const T& vred) const { } template <class T> bool seznam<T>::prazen() const { } template <class T> int seznam<T>::velikost() const { } ----------------------------------------------------------- #include <iostream> #include "seznam.h" using namespace std; int main() { seznam <int> mojSeznam; char izbira; do { cout << "1 -izhod" << endl; cin >> izbira; } while(izbira != '1'); system("pause"); return 0; }
Obilo zabave...:D
Loadeed
rasta ::
Pri šablonah - template mora biti na voljo tako definicija kot implementacija. Oz. implementacije metod template razredov ne moraš linkati, ker jih za vsak primer prevajalnik šele ustvari.
Kot vidim imaš ti implementacije v ločeni datoteki.
Kot vidim imaš ti implementacije v ločeni datoteki.
Loaded ::
Hvala.....še eno bolj noob vprašanje imam.....
Če napišem :
to ni isto? Po moji logiki bi naj bilo.....
k_zacetek je kazalec na zacetek seznama...k_naslednji je kazalec na naslednji element (struktura)..
Lp
Če napišem :
while (k_zacetek->k_naslednji != NULL) ali for (element* k = k_zacetek; k != NULL; k = k->k_naslednji)
to ni isto? Po moji logiki bi naj bilo.....
k_zacetek je kazalec na zacetek seznama...k_naslednji je kazalec na naslednji element (struktura)..
Lp
Loadeed
Zgodovina sprememb…
- spremenil: Loaded ()
BigWhale ::
Razlika je v tem, da moras v while zanki sam poskrbet za 'povecevanje stevca'. Karkoli ze to je.
While zanke so bolj uporabne, ce se ti stevec ne povecuje/zmanjsuje vedno po istem koraku.
Tole ni najbolj pametno. :)
While zanke so bolj uporabne, ce se ti stevec ne povecuje/zmanjsuje vedno po istem koraku.
for (i = 0; i < 100; i++) { ... ... ... ... i++; ... ... ... ... }
Tole ni najbolj pametno. :)
Loaded ::
Zakaj mi stavek
ne dela?
Rad bi šel skozi seznam in preštel koliko je elementov noter..
Lp
int i; while(k_zacetek->k_nasl != NULL) i++;
ne dela?
Rad bi šel skozi seznam in preštel koliko je elementov noter..
Lp
Loadeed
Vredno ogleda ...
Tema | Ogledi | Zadnje sporočilo | |
---|---|---|---|
Tema | Ogledi | Zadnje sporočilo | |
» | arrayList, razred chainOddelek: Programiranje | 1082 (1006) | ERGY |
» | [c++]SeznamOddelek: Programiranje | 2667 (2667) | Gundolf |
» | [C++ naloga] seznamOddelek: Programiranje | 1391 (1391) | BigWhale |
» | pomoc pri skladuOddelek: Programiranje | 1331 (1256) | NoUse4AName |
» | [C++] NULL: Undeclared identifier - HELP!Oddelek: Programiranje | 1228 (1166) | CCfly |