Vorheriges Thema anzeigen :: Nächstes Thema anzeigen |
Autor |
Nachricht |
TheMillenium Dark JLI'ler
Anmeldedatum: 21.07.2002 Beiträge: 1427 Wohnort: World Medaillen: Keine
|
Verfasst am: 17.09.2004, 14:21 Titel: Templates... |
|
|
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 |
|
 |
Hazel JLI MVP


Alter: 40 Anmeldedatum: 19.07.2002 Beiträge: 1761
Medaillen: Keine
|
Verfasst am: 17.09.2004, 16:44 Titel: |
|
|
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 |
|
 |
TheMillenium Dark JLI'ler
Anmeldedatum: 21.07.2002 Beiträge: 1427 Wohnort: World Medaillen: Keine
|
Verfasst am: 17.09.2004, 17:32 Titel: |
|
|
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 |
|
 |
The Lord of Programming Living Legend

Alter: 37 Anmeldedatum: 14.03.2003 Beiträge: 3122
Medaillen: Keine
|
Verfasst am: 17.09.2004, 21:04 Titel: |
|
|
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 |
|
 |
TheMillenium Dark JLI'ler
Anmeldedatum: 21.07.2002 Beiträge: 1427 Wohnort: World Medaillen: Keine
|
Verfasst am: 17.09.2004, 21:19 Titel: |
|
|
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 |
|
 |
Mazze JLI'ler
Alter: 39 Anmeldedatum: 02.01.2004 Beiträge: 145
Medaillen: Keine
|
Verfasst am: 17.09.2004, 21:33 Titel: |
|
|
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 |
|
 |
TheMillenium Dark JLI'ler
Anmeldedatum: 21.07.2002 Beiträge: 1427 Wohnort: World Medaillen: Keine
|
Verfasst am: 17.09.2004, 21:41 Titel: |
|
|
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 |
|
 |
Hazel JLI MVP


Alter: 40 Anmeldedatum: 19.07.2002 Beiträge: 1761
Medaillen: Keine
|
Verfasst am: 18.09.2004, 10:52 Titel: |
|
|
In Lua bestimmt der Inhalt einer Variable seinen Typ. ;) _________________ *click* Dabuu!?
Twitter: http://twitter.com/Ollie_R
|
|
Nach oben |
|
 |
TheMillenium Dark JLI'ler
Anmeldedatum: 21.07.2002 Beiträge: 1427 Wohnort: World Medaillen: Keine
|
Verfasst am: 18.09.2004, 11:32 Titel: |
|
|
Hazel hat Folgendes geschrieben: | In Lua bestimmt der Inhalt einer Variable seinen Typ.  |
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 |
|
 |
The Lord of Programming Living Legend

Alter: 37 Anmeldedatum: 14.03.2003 Beiträge: 3122
Medaillen: Keine
|
Verfasst am: 18.09.2004, 12:16 Titel: |
|
|
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 |
|
 |
TheMillenium Dark JLI'ler
Anmeldedatum: 21.07.2002 Beiträge: 1427 Wohnort: World Medaillen: Keine
|
Verfasst am: 18.09.2004, 13:13 Titel: |
|
|
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 |
|
 |
The Lord of Programming Living Legend

Alter: 37 Anmeldedatum: 14.03.2003 Beiträge: 3122
Medaillen: Keine
|
Verfasst am: 18.09.2004, 13:36 Titel: |
|
|
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 |
|
 |
TheMillenium Dark JLI'ler
Anmeldedatum: 21.07.2002 Beiträge: 1427 Wohnort: World Medaillen: Keine
|
Verfasst am: 18.09.2004, 13:49 Titel: |
|
|
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 |
|
 |
Hazel JLI MVP


Alter: 40 Anmeldedatum: 19.07.2002 Beiträge: 1761
Medaillen: Keine
|
Verfasst am: 18.09.2004, 22:34 Titel: |
|
|
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 |
|
 |
TheMillenium Dark JLI'ler
Anmeldedatum: 21.07.2002 Beiträge: 1427 Wohnort: World Medaillen: Keine
|
Verfasst am: 19.09.2004, 09:12 Titel: |
|
|
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 ¤t_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 |
|
 |
|