B
Bgag
Guten Abend!
Ich habe eine Reihe von Klassen, die von der selben abstrakten C++ Klasse (alle Funktionen virtual) erben. Nun möchte ich mehrere Objekte der verschiedenen abgeleiteten Klassen in einem Vektor, einer Liste oder einem Array ablegen, sodass ich über diese iterieren kann. Zum besseren Verständnis hier noch ein kleines Beispiel.
Wir haben eine abstrakte Basis-Klasse BaseGeom, dir nur eine virtuelle Funktion intersect(Straight s) implementiert. Von dieser Basis-Klasse werden die Klassen Triangle, Sphere und Layer abgeleitet. Es werden zwei Instanzen der Klasse Triangle, drei Instanzen der Klasse Sphere und eine Instanz der Klasse Layer in einer Liste geomObjects<BaseGeom> abgelegt. Nun möchte ich in einer Schleife überprüfen, ob eine Gerade s schneiden.
Hoffe dieses kurze Beispiel macht etwas klarer, wo mein Problem liegt. Wäre euch für Hinweise und Anregungen sehr dankbar.
Liebe Grüße,
Andreas
Ich habe eine Reihe von Klassen, die von der selben abstrakten C++ Klasse (alle Funktionen virtual) erben. Nun möchte ich mehrere Objekte der verschiedenen abgeleiteten Klassen in einem Vektor, einer Liste oder einem Array ablegen, sodass ich über diese iterieren kann. Zum besseren Verständnis hier noch ein kleines Beispiel.
Wir haben eine abstrakte Basis-Klasse BaseGeom, dir nur eine virtuelle Funktion intersect(Straight s) implementiert. Von dieser Basis-Klasse werden die Klassen Triangle, Sphere und Layer abgeleitet. Es werden zwei Instanzen der Klasse Triangle, drei Instanzen der Klasse Sphere und eine Instanz der Klasse Layer in einer Liste geomObjects<BaseGeom> abgelegt. Nun möchte ich in einer Schleife überprüfen, ob eine Gerade s schneiden.
Code:
for(int i = 0; i < geomObjects.size(); i++) {
if( geomObjects.get(i).intersect(s) ) {
std::cout << "Intersection with " << geomObjects.get(i) << std::endl;
}
}
Hoffe dieses kurze Beispiel macht etwas klarer, wo mein Problem liegt. Wäre euch für Hinweise und Anregungen sehr dankbar.
Liebe Grüße,
Andreas