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

$nooc

Alter Hase

  • »$nooc« ist der Autor dieses Themas

Beiträge: 873

Wohnort: Österreich / Kärnten

Beruf: Schüler

  • Private Nachricht senden

1

08.01.2008, 11:43

variabler listen-inhalt

hi leute..

der titel des threads ist vllt nicht allzu gut, aber was besseres ist mir nicht eingefallen.

ich hab da ne klasse für eine verkettete liste, und ich würde diese gerne so verändern, dass die daten die diese enthält variabel ist.

also es soll egal sein ob ich der liste jetzt ein object, oder einfach nur eine zahl oder so übergebe:

C-/C++-Quelltext

1
2
3
4
5
int x = 101;
Player FirstPlayer;

mylist.AddItem(x);
mylist.AddItem(FirstPlayer);


gibts da ne möglichkeit, die man da verwenden kann?

ich dachte zb an einen void* pointer, aber funktioniert das überhaupt? void* pointer sind ja nicht wirklich "die englische art" wie ich gehört hab :D
Am Anfang der Weisheit steht die eigene Erkenntnis, dass man selbst nichts weiß! - Sokrates

TrommlBomml

Community-Fossil

Beiträge: 2 117

Wohnort: Berlin

Beruf: Software-Entwickler

  • Private Nachricht senden

2

08.01.2008, 11:49

also bei diesem problm wirste meines wissens nicht um einen void-zeiger herumkommen, auch wenns nicht nicht, wie schon richtig, gesagt, die feine englische art ist. wobei mir der sinn einer olchen liste nicht ganz klar ist, wo man so ziemlich alles reinschmeissen kann. wozu brauchst du das denn?

$nooc

Alter Hase

  • »$nooc« ist der Autor dieses Themas

Beiträge: 873

Wohnort: Österreich / Kärnten

Beruf: Schüler

  • Private Nachricht senden

3

08.01.2008, 12:01

sry.. inet hängt.. doppelpost ^^
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

4

08.01.2008, 12:02

nun ja, das klingt jetz vllt. seltsam, aber das will ich deshalb so haben, damit ich diese klasse im prinzip nicht mehr verändern muss. also damit ich diese klasse für andere projekte benutzen kann wo ich mal was anderes auflisten will.. zb für meine thread klasse wo ich gern die unterschiedlichen kritischen bereiche verwalten will. dafür müsste ich zb CRITICAL_SECTION in die liste einfügen..


oder sollte ich auf diesen komfort verzichten, und die klasse jedesmal so umschreiben damit sie speichert was sie speichern soll? wäre vllt. sicherer oder?
Am Anfang der Weisheit steht die eigene Erkenntnis, dass man selbst nichts weiß! - Sokrates

TrommlBomml

Community-Fossil

Beiträge: 2 117

Wohnort: Berlin

Beruf: Software-Entwickler

  • Private Nachricht senden

5

08.01.2008, 12:11

also das klingt jetz weider so, also ob jede liste genau EINEN beliebigen type speichern soll. dann wäre ein template die lösung!

6

08.01.2008, 12:11

ich verstehe nicht ganz, willst du eine instanz der klasse erstellen und darin mehrere verschiedene objekte verwalten oder eine flexible listenklasse haben, die man für verschiedene objekte hernehmen kann(verschiedene instanzen der liste)
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

7

08.01.2008, 12:15

@ Max:

zweiteres! :)

eine flexible listenklasse, die man für verschiedene objekte hernehmen kann
Am Anfang der Weisheit steht die eigene Erkenntnis, dass man selbst nichts weiß! - Sokrates

8

08.01.2008, 12:18

hab ich mir schon gedacht ;)

man kann es mit zeigern machen, aber das nicht wirklich toll ;)
viel einfacher und sicherer geht es mit templates. ich hatte mal vor paar jahren ein tutorial darüber geschrieben: Template-Liste Tutorial

such auch mal bei google nach templates

MfG Maxim
www.virtual-maxim.de <-- C++ Einführung, Spieleprogrammierung-Artikel u.v.m.

Purga Scriptengine <-- eigene Scriptspache.

TrommlBomml

Community-Fossil

Beiträge: 2 117

Wohnort: Berlin

Beruf: Software-Entwickler

  • Private Nachricht senden

9

08.01.2008, 12:19

aslo doch templates xD

rklaffehn

Treue Seele

Beiträge: 267

Wohnort: Braunschweig

  • Private Nachricht senden

10

08.01.2008, 12:28

Das Problem mit einem void* ist auch, dass man dem nicht mehr ansieht, was wirklich dahinter steht. Ein dynamic_cast auf einem void* funktioniert einfach nicht.

Du must also wenigstens noch einen Typ speichern, damit du hinterher wieder das richtige Objekt draus machen kannst.

Implementationen dazu gibt es auch schon:
[list]
QVariant (QT)
any (boost)
variant (boost)
[/list]
Um es also genau zu nehmen: nicht das Listenobjekt kann verschiedene Objekttypen enthalten, sondern die Liste enthält Objekte (des selben Typs), die verschiedene Objekttypen enthalten können.
God is real... unless declared integer.
http://www.boincstats.com/signature/user_967277_banner.gif

Werbeanzeige