Du bist nicht angemeldet.

Stilllegung des Forums
Das Forum wurde am 05.06.2023 nach über 20 Jahren stillgelegt (weitere Informationen und ein kleiner Rückblick).
Registrierungen, Anmeldungen und Postings sind nicht mehr möglich. Öffentliche Inhalte sind weiterhin zugänglich.
Das Team von spieleprogrammierer.de bedankt sich bei der Community für die vielen schönen Jahre.
Wenn du eine deutschsprachige Spieleentwickler-Community suchst, schau doch mal im Discord und auf ZFX vorbei!

Werbeanzeige

11

08.01.2008, 12:33

was spricht denn gegen std::list?
www.virtual-maxim.de <-- C++ Einführung, Spieleprogrammierung-Artikel u.v.m.

Purga Scriptengine <-- eigene Scriptspache.

$nooc

Alter Hase

  • »$nooc« ist der Autor dieses Themas

Beiträge: 873

Wohnort: Österreich / Kärnten

Beruf: Schüler

  • Private Nachricht senden

12

08.01.2008, 13:41

@ Max:

danke für denk link, ich denke das ist genau das was ich gesucht habe ;)

werd das glaub ich übernehmen und anpassen!

danke dir!


@rklaffehn:
danke für die erkläuterung! ist immer gut etwas über die hitnergründe zu wissen :)
Am Anfang der Weisheit steht die eigene Erkenntnis, dass man selbst nichts weiß! - Sokrates

$nooc

Alter Hase

  • »$nooc« ist der Autor dieses Themas

Beiträge: 873

Wohnort: Österreich / Kärnten

Beruf: Schüler

  • Private Nachricht senden

13

08.01.2008, 14:04

Problem:

hab die klasse jetzt umgeschrieben, und als template deklariert..

jedoch hab ich jetzt auf einmal ein problem mit nicht aufgelösten symbolen:


Zitat von »"Compiler der Spielverderber"«


Fehler 6 fatal error LNK1120: 5 nicht aufgelöste externe Verweise.
Fehler 3 error LNK2019: Verweis auf nicht aufgelöstes externes Symbol ""public: void __thiscall List<int>::ShowList(void)" (?ShowList@?$List@H@@QAEXXZ)" in Funktion "_main". Main.obj
Fehler 2 error LNK2019: Verweis auf nicht aufgelöstes externes Symbol ""public: void __thiscall List<int>::Clear(void)" (?Clear@?$List@H@@QAEXXZ)" in Funktion "_main". Main.obj
Fehler 1 error LNK2019: Verweis auf nicht aufgelöstes externes Symbol ""public: virtual __thiscall List<int>::~List<int>(void)" (??1?$List@H@@UAE@XZ)" in Funktion "_main". Main.obj
Fehler 4 error LNK2019: Verweis auf nicht aufgelöstes externes Symbol ""public: int __thiscall List<int>::AddElement(int,unsigned long)" (?AddElement@?$List@H@@QAEHHK@Z)" in Funktion "_main". Main.obj
Fehler 5 error LNK2019: Verweis auf nicht aufgelöstes externes Symbol ""public: __thiscall List<int>::List<int>(void)" (??0?$List@H@@QAE@XZ)" in Funktion "_main". Main.obj



um das ganze zu vereinfachen:

C-/C++-Quelltext

1
List<int> mylist;


ergibt

Zitat von »"Compiler"«


Fehler 1 error LNK2019: Verweis auf nicht aufgelöstes externes Symbol ""public: virtual __thiscall List<int>::~List<int>(void)" (??1?$List@H@@UAE@XZ)" in Funktion "_main". Main.obj

Fehler 2 error LNK2019: Verweis auf nicht aufgelöstes externes Symbol ""public: __thiscall List<int>::List<int>(void)" (??0?$List@H@@QAE@XZ)" in Funktion "_main". Main.obj

Fehler 3 fatal error LNK1120: 2 nicht aufgelöste externe Verweise.
Am Anfang der Weisheit steht die eigene Erkenntnis, dass man selbst nichts weiß! - Sokrates

14

08.01.2008, 14:55

also ohne quellcode kann ich nicht sagen, wo das problem ist, aber ich vermute mal, dass du die klasse in einer cpp-datei implementiert hast. das geht bei templates nicht.
www.virtual-maxim.de <-- C++ Einführung, Spieleprogrammierung-Artikel u.v.m.

Purga Scriptengine <-- eigene Scriptspache.

dot

Supermoderator

Beiträge: 9 757

Wohnort: Graz

  • Private Nachricht senden

15

08.01.2008, 15:01

warum verwendest du nicht einfach std::list?
das is genau was du suchst!?

16

08.01.2008, 15:15

Oder zeigst uns zumindest mal den Code, denn da läuft was schief ;)

Achja, bei Templates gehört die Funktionsimplementierung mit in den Header!
Devil Entertainment :: Your education is our inspiration
Der Spieleprogrammierer :: Community Magazin
Merlin - A Legend awakes :: You are a dedicated C++ (DirectX) programmer and you have ability to work in a team? Contact us!
Siedler II.5 RttR :: The old settlers-style is comming back!

Also known as (D)Evil

$nooc

Alter Hase

  • »$nooc« ist der Autor dieses Themas

Beiträge: 873

Wohnort: Österreich / Kärnten

Beruf: Schüler

  • Private Nachricht senden

17

08.01.2008, 15:17

@ Maxim:

du meinst die definitionen gehören in dieselbe .hpp in der die deklarationen des templates sind?


@dot:

ich schreib mir sowas lieber selber. will noch mehr übung für die sprache bekommen. solche kleinigkeiten die ich mir selber schreiben kann mach ich lieber selbst, anstatt etwas fertiges zu verwenden ... übungshalber
Am Anfang der Weisheit steht die eigene Erkenntnis, dass man selbst nichts weiß! - Sokrates

dot

Supermoderator

Beiträge: 9 757

Wohnort: Graz

  • Private Nachricht senden

18

08.01.2008, 15:21

Zitat von »"$nooc"«

du meinst die definitionen gehören in dieselbe .hpp in der die deklarationen des templates sind?


jo. unter msvc kannst du nur komplette spezialisierungen von templates in eine .cpp packen...

Zitat von »"$nooc"«

ich schreib mir sowas lieber selber. will noch mehr übung für die sprache bekommen. solche kleinigkeiten die ich mir selber schreiben kann mach ich lieber selbst, anstatt etwas fertiges zu verwenden ... übungshalber


ok, übungshalber ist gut. aber für was ernstes würd ich std::list nehmen ;)

p0llux

Treue Seele

Beiträge: 101

Wohnort: Aachen

Beruf: HiWi (theo. Inf.)

  • Private Nachricht senden

19

08.01.2008, 15:24

Alternativ kann man Vererbungshierarchien verwenden oder auf Union-Konstrukte zurückgreifen (vlt. in Kombination mit Factories), wenn man wirklich beliebige Objekte in eine Liste fassen möchte.

$nooc

Alter Hase

  • »$nooc« ist der Autor dieses Themas

Beiträge: 873

Wohnort: Österreich / Kärnten

Beruf: Schüler

  • Private Nachricht senden

20

08.01.2008, 15:34

@dot:

tatsächlich.. es funktioniert ^^
ich muss allerdings anmerken dass mir das gar nicht gefällt.. wieso kann man den code nicht in eine cpp datei auslagern? das ist ja total nervig.. *burgs*

jaja, für was ernstes würd ich dann schon eher std::list nehmen ^^


@p0llux:

wo du grade von vererbung sprichst..

ich habe vor meine klasse "CriticalSections" von "List" erben zu lassen, damit CriticalSections "sich selbst" verwaltet..

ist das ne gute lösung?
Am Anfang der Weisheit steht die eigene Erkenntnis, dass man selbst nichts weiß! - Sokrates

Werbeanzeige