JLI Spieleprogrammierung Foren-Übersicht JLI Spieleprogrammierung

 
 FAQFAQ   SuchenSuchen   MitgliederlisteMitgliederliste   BenutzergruppenBenutzergruppen 
 medals.php?sid=6efd1ada8e602a675d4b04f8868cd26dMedaillen   RegistrierenRegistrieren   ProfilProfil   Einloggen, um private Nachrichten zu lesenEinloggen, um private Nachrichten zu lesen   LoginLogin 

Templates...
Gehe zu Seite 1, 2  Weiter
 
Neues Thema eröffnen   Neue Antwort erstellen    JLI Spieleprogrammierung Foren-Übersicht -> Entwicklung
Vorheriges Thema anzeigen :: Nächstes Thema anzeigen  
Autor Nachricht
TheMillenium
Dark JLI'ler



Anmeldedatum: 21.07.2002
Beiträge: 1427
Wohnort: World
Medaillen: Keine

BeitragVerfasst am: 17.09.2004, 14:21    Titel: Templates... Antworten mit Zitat

Hi!

Wenn man eine Klasse ableitet kann man ja sowas machen;

class Tier
{
...
};

class Vogel : public Tier
{
...
}


class Reptil : public Tier
{
...
}


class Mensch : public Tier
{
...
}


Tier* pointer[3];

pointer[0] = new Vogel;
pointer[1] = new Reptil;
pointer[2] = new Mensch;

Kann man sowas auch mit Templates machen?

Also:

//t_class<int> INT;
//t_class<float> FLOAT;
...

...
pointer[0] = new t_class<int>;
pointer[1] = new t_class<float>;
...
_________________
The source of all power is in its destiny...
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Hazel
JLI MVP
JLI MVP


Alter: 40
Anmeldedatum: 19.07.2002
Beiträge: 1761

Medaillen: Keine

BeitragVerfasst am: 17.09.2004, 16:44    Titel: Antworten mit Zitat

Nein, ein Template ist ja keine Klasse, sondern nur eine Klassenvorlage... erst mit Templateparametern ist es eine eigene Klasse.
_________________
*click* Dabuu!?
Twitter: http://twitter.com/Ollie_R
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
TheMillenium
Dark JLI'ler



Anmeldedatum: 21.07.2002
Beiträge: 1427
Wohnort: World
Medaillen: Keine

BeitragVerfasst am: 17.09.2004, 17:32    Titel: Antworten mit Zitat

Ich weiß. Aber warum gibt es keinen Zeiger ...gibt es schon, halb! :p

Code:
abc<int> t1;

   t1.var = 200;

   cout << t1.var << endl;

   abc<void*>* pv1;

   pv1 = (abc<void*>*)&t1;
   ((abc<int>*)pv1)->var = 2;

   cout << t1.var << endl;


Kann man da keine allgemeine Lösung schreiben, die die Typenumwandlungen jeglichen Types automatisch für jeden Zeiger in einem Zeigerarray übernimmt?
_________________
The source of all power is in its destiny...
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
The Lord of Programming
Living Legend


Alter: 37
Anmeldedatum: 14.03.2003
Beiträge: 3122

Medaillen: Keine

BeitragVerfasst am: 17.09.2004, 21:04    Titel: Antworten mit Zitat

Ich hatte mal ein ähnliches Problem.
Ich habe dann mal testweise eine Template-Funktion geschrieben, die das dann umwandeln kann.

Aber letztendlich habe ich dann eine normale Vererbung genommen. Das finde ich in so einem Fall komfortabler.
_________________
www.visualgamesentertainment.net
Current projects: RDTDC(1), JLI-Vor-Projekt, Tetris(-Tutorial), JLI-Format
(1) Realtime Developer Testing and Debugging Console


Anschlag, Anleitung zum Atombombenbau, Sprengkörper...
Hilf Schäuble! Damit er auch was findet...
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
TheMillenium
Dark JLI'ler



Anmeldedatum: 21.07.2002
Beiträge: 1427
Wohnort: World
Medaillen: Keine

BeitragVerfasst am: 17.09.2004, 21:19    Titel: Antworten mit Zitat

Wie macht das dann LUA das man in den Scriptdaten irgendwelche Variablen von irgendeinembeliebigen Datentyp erstellen kann....?
_________________
The source of all power is in its destiny...
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Mazze
JLI'ler


Alter: 39
Anmeldedatum: 02.01.2004
Beiträge: 145

Medaillen: Keine

BeitragVerfasst am: 17.09.2004, 21:33    Titel: Antworten mit Zitat

Mit ein wenig getrickse lässt sich das ganze schon lösen, aber ob man das will/braucht?!
IMO macht in so einem Fall dir normale Vererbung mehr Sinn!
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
TheMillenium
Dark JLI'ler



Anmeldedatum: 21.07.2002
Beiträge: 1427
Wohnort: World
Medaillen: Keine

BeitragVerfasst am: 17.09.2004, 21:41    Titel: Antworten mit Zitat

Nein, macht sie nicht, außer ich kann auch Live beim Laufen des Programms neue Klassen ableiten, das geht aber afaik nicht...auf jeden Fall für meinen Zweck ansonsten gebe ich dir Recht.
_________________
The source of all power is in its destiny...
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Hazel
JLI MVP
JLI MVP


Alter: 40
Anmeldedatum: 19.07.2002
Beiträge: 1761

Medaillen: Keine

BeitragVerfasst am: 18.09.2004, 10:52    Titel: Antworten mit Zitat

In Lua bestimmt der Inhalt einer Variable seinen Typ. ;)
_________________
*click* Dabuu!?
Twitter: http://twitter.com/Ollie_R
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
TheMillenium
Dark JLI'ler



Anmeldedatum: 21.07.2002
Beiträge: 1427
Wohnort: World
Medaillen: Keine

BeitragVerfasst am: 18.09.2004, 11:32    Titel: Antworten mit Zitat

Hazel hat Folgendes geschrieben:
In Lua bestimmt der Inhalt einer Variable seinen Typ. Wink

Die Variablen von LUA kann man doch dann auch an Funktionen übergeben?
Wie kann die Funktion dann herausfinden, ob ihr ein Parameter vom richtigen Typ übergeben wird? Kann man sich auch die .cpp und .h Datei herunterladen in dem dieser Part gemanaged wird?
_________________
The source of all power is in its destiny...
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
The Lord of Programming
Living Legend


Alter: 37
Anmeldedatum: 14.03.2003
Beiträge: 3122

Medaillen: Keine

BeitragVerfasst am: 18.09.2004, 12:16    Titel: Antworten mit Zitat

TheMillenium hat Folgendes geschrieben:
...auf jeden Fall für meinen Zweck ansonsten gebe ich dir Recht.

Für welchen Zweck brauchst du es denn?
Vielleicht gibts ja eine andere Lösung...
_________________
www.visualgamesentertainment.net
Current projects: RDTDC(1), JLI-Vor-Projekt, Tetris(-Tutorial), JLI-Format
(1) Realtime Developer Testing and Debugging Console


Anschlag, Anleitung zum Atombombenbau, Sprengkörper...
Hilf Schäuble! Damit er auch was findet...
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
TheMillenium
Dark JLI'ler



Anmeldedatum: 21.07.2002
Beiträge: 1427
Wohnort: World
Medaillen: Keine

BeitragVerfasst am: 18.09.2004, 13:13    Titel: Antworten mit Zitat

Ich will in meiner Spielekonsole Variablen von jeglichem Datentyp erstellen können. Ein Variablename soll aber auch genau einem Typ zugewiesen werden, also wenn ich den Variablenamen angebe soll das Programm wissen, ob es vom Typ char*, int, ... ist. Und ich möchte den Typ nicht immer mitangeben müssen.
_________________
The source of all power is in its destiny...
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
The Lord of Programming
Living Legend


Alter: 37
Anmeldedatum: 14.03.2003
Beiträge: 3122

Medaillen: Keine

BeitragVerfasst am: 18.09.2004, 13:36    Titel: Antworten mit Zitat

Wieso machst du dir dann nicht für jede Variablenart eine Struktur, die den Typ selber und den Inhalt enthält?

Also so:
Code:
struct INT_STRUCT
{
   typedef int this_type;
   this_type value;
};

struct CHARP_STRUCT
{
   typedef char* this_type;
   this_type value;
};

_________________
www.visualgamesentertainment.net
Current projects: RDTDC(1), JLI-Vor-Projekt, Tetris(-Tutorial), JLI-Format
(1) Realtime Developer Testing and Debugging Console


Anschlag, Anleitung zum Atombombenbau, Sprengkörper...
Hilf Schäuble! Damit er auch was findet...
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
TheMillenium
Dark JLI'ler



Anmeldedatum: 21.07.2002
Beiträge: 1427
Wohnort: World
Medaillen: Keine

BeitragVerfasst am: 18.09.2004, 13:49    Titel: Antworten mit Zitat

Sagen wir ich schreibe eine Klasse die die Variablen enthält, dann möchte ich sowas machen können:

Selbst wenn ich jetzt die Klasse für jeden Datentyp vorbereiten müsste...:

class_vars vars;

vars["Zahl"](INT);
vars["String"](CHAR);

vars["Zahl"] = 2;

sprintf(vars["String"],"Funktioniert!!");

// void func(char* s, int z)
func(vars["String"], vars["Zahl"];

sowas will ich damit machen können...
_________________
The source of all power is in its destiny...
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Hazel
JLI MVP
JLI MVP


Alter: 40
Anmeldedatum: 19.07.2002
Beiträge: 1761

Medaillen: Keine

BeitragVerfasst am: 18.09.2004, 22:34    Titel: Antworten mit Zitat

Du kannst das z.B. so lösen:

Code:

struct varia
{
   int type;

   union
   {
      int _i;
      string _s;
      float _f;
      ...
    }
};

_________________
*click* Dabuu!?
Twitter: http://twitter.com/Ollie_R
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
TheMillenium
Dark JLI'ler



Anmeldedatum: 21.07.2002
Beiträge: 1427
Wohnort: World
Medaillen: Keine

BeitragVerfasst am: 19.09.2004, 09:12    Titel: Antworten mit Zitat

In meinem alten Projekt hatte ich das auch so gelöst, aber da musste ich dann immer jede Funktion auch darauf vorbereiten weil ich den Wert einer zugeordneten Variablennamens nur so bekommen habe:

void Get_Value_All(char* variable_name,
char *return_value_1,
int &return_value_2,
float &return_value_3,
bool &return_value_4,
int &current_value_typ);

Wie man sieht musste ich dann den richtigen Rückgabewert (return_value_?) an eine Funktion weiterleiten und da dachte ich gibt es doch bestimmt eine bessere Lösung.
_________________
The source of all power is in its destiny...
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Beiträge der letzten Zeit anzeigen:   
Neues Thema eröffnen   Neue Antwort erstellen    JLI Spieleprogrammierung Foren-Übersicht -> Entwicklung Alle Zeiten sind GMT
Gehe zu Seite 1, 2  Weiter
Seite 1 von 2

 
Gehe zu:  
Du kannst keine Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum nicht antworten.
Du kannst deine Beiträge in diesem Forum nicht bearbeiten.
Du kannst deine Beiträge in diesem Forum nicht löschen.
Du kannst an Umfragen in diesem Forum nicht mitmachen.


Powered by phpBB © 2001, 2005 phpBB Group
Deutsche Übersetzung von phpBB.de

Impressum