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 | 1115 (1039) | ERGY |
» | [c++]SeznamOddelek: Programiranje | 2727 (2727) | Gundolf |
» | [C++ naloga] seznamOddelek: Programiranje | 1418 (1418) | BigWhale |
» | pomoc pri skladuOddelek: Programiranje | 1386 (1311) | NoUse4AName |
» | [C++] NULL: Undeclared identifier - HELP!Oddelek: Programiranje | 1273 (1211) | CCfly |