Dynamische Klasse oder was anderes?!?
-
Hallo Leute,
ich habe mir eine Klasse erzeugt und möchte diese Klasse mehrfach verwenden.
Ich habe das bisher statisch gelöst, d.h. habe die Klasse einmal erzeugt und dann 2 mal vererbt.
Ich möchte dies nun dynamisch tun, das ich beim Start des Programms bestimmen kann wie oft ich die klasse erzeuge.
Kann mir bitte jemand erklären wie ich das auf eine elegante variante machen kann?Hier ist als Bespiel die Klasse, wie ich es bisher gemacht habe:
class Klasse1 { public: void variable1(); }; class Klasse2:public Klasse1; class Klasse3:public Klasse1; //usw. ...MFG
photoscout
-
Hallo
Da musst du doch nicht vererben, sondern nur Instanzen erstellen:
class foo { }; foo temp1; foo temp2; //...wenn du es dynamisch willst, dann empfehle ich dir in c++ einen vectoe:
class foo
{
};int anzahl; cout<<"Wie viele Klassen?" cin>>anzahl; std::vector<foo> my_foos(anzahl);ist natürlich nicht getestet.
chrische
-
Öhm... was willst du, mehrere Objekte einer Klasse (Instanzen) oder mehrere Klassen?
Wenn du eine Klasse mehrfach zur Laufzeit verwenden willst, und ich gehe hier von Instanzen aus, so hilft z.b. new/delete bzw. die Verwaltung über irgendeine Form einer dynamische Liste (z.b. std::vector, std::map...).
Wenn du wirklich eine Klasse meinst und dynamische Vererbung, soltest du statt dessen eher das Design überdenken...
cu André
-
asc schrieb:
Öhm... was willst du, mehrere Objekte einer Klasse (Instanzen) oder mehrere Klassen?
Wenn du eine Klasse mehrfach zur Laufzeit verwenden willst, und ich gehe hier von Instanzen aus, so hilft z.b. new/delete bzw. die Verwaltung über irgendeine Form einer dynamische Liste (z.b. std::vector, std::map...).
Wenn du wirklich eine Klasse meinst und dynamische Vererbung, soltest du statt dessen eher das Design überdenken...
cu André
Also ich soll ein Programm schreiben damit ich Zweipole (Elektortechnik) mit einander verschalten kann. Das soll ich mittels Klassen lösen.
Also ich habe wie oben schon geschrieben, eine Klasse erzeugt, mein erster Zweipol. Die anderen Zweipole benutzen die gleichen eigenschaften wie die erste Klasse.
Also hab ich mir gedacht, vererbst du einfach die erste Klasse.
Erschien mir am einfachsten, aber das Problem is, so wie ich es gemacht habe, kann ich max. 3 Zweipole benutzen!
-
Hallo
Benutze doch einfach mehrere Instanzen ein und derselben Klasse, wie ich bereits geschrieben habe.
chrische
-
Glaube ehr du hast den unterschied zwischen Klassen und Instanzen nicht verstanden...
Eine Klasse class xxxx; ist nichts andere wie eine art Objekt DNA/Muster.
class A{ int A; int B; };die ist fest implementiert in deinem Code! wenn du nun zur laufzeut
A a; A b; A c; .. . . .machst , werden Objekte a,b,c erzeugt welche die struzktur der Klasse A haben. die Objetk Anzahl ist varaibel. Und jedes pobjekt a,b,c hat nun jeweil ihre eingehn werte (int A, int B)...
-
... oder so:
// 3 Klassen class BMW { ... } // Klasse (wie der Bezeichner schon sagt) class Mercedes { ... } // eine andere Klasse class Fiat { ... } // noch eine andere Klasse // 3 Objekte int main() { BMW meinBMW; // Ein Objekt (="Instanz einer Klasse") der Klasse BMW BMW deinBMW; // ein anderes Objekt derselben Klasse Mercedes meinBenz; // ein anderes Objekt ... diesmal der Klasse Mercedes // ... mal ganz fies Fiat photoscoutsPorsche; // ;) ..."Objekt" = "Ding, mit dem man etwas machen kann"
"Klasse" = "Art, wie gleiche Dinge aussehen"Gruß,
Simon2.