Hallo,
ich weiß, dass es hier bereits ein ähnliches Thema gab, doch leider konnte es mir meine Frage nicht zufrieden stellend beantworten.
Ich habe eine Klasse, die als Eigenschaft ein Vector gefüllt mit Punkten mit jeweils 3 Koordinaten besitzt:
Diese Klasse soll nun einen weiteren Vector als Eigenschaft besitzen, der mit Polygonen gefüllt wird (Dreiecke). Da es sich hier um sehr sehr viele Punkte handelt, möchte ich in dem Polygon nur die Referenz auf die Punkte speichern, anstatt jedes Polygon mit den Punkten zu füllen.
Jetzt zu meinem Problem. Ich bin erst seit einigen Tagen beim C++ programmieren und somit noch nicht sehr firm mit der Sprache. Ich habe gelesen, dass man in c++ lieber Referenzen benutzen sollte als Pointer. Also habe ich versucht einen struct zu definieren:
Jedoch beschwert sich der Kompiler bei der initialisierung:
über einen fehlenden geeigneten Konstruktor.
So wie ich dass jetzt sehe, liegt das daran, dass bei der Initialisierung die Referenzen tvertex& v1 ... etc. nicht definiert sind.
Meine Frage ist, wie kann ich diese initialisieren. Denn die Referenzen sind erst zur Laufzeit, also beim konstruieren des tpolygon bekannt. Aber auch das umschreiben in eine Klasse mit einem Konstruktor, der die Referenzen als Parameter benötigt, half mir noch nicht weiter (Pseudocode):
Ich hoffe, ihr könnt mir vielleicht helfen.
Viele Grüße
ich weiß, dass es hier bereits ein ähnliches Thema gab, doch leider konnte es mir meine Frage nicht zufrieden stellend beantworten.
Ich habe eine Klasse, die als Eigenschaft ein Vector gefüllt mit Punkten mit jeweils 3 Koordinaten besitzt:
Code:
class tbody
{
public:
//methoden
private:
std::vector<tvertex> vertices;
};
Diese Klasse soll nun einen weiteren Vector als Eigenschaft besitzen, der mit Polygonen gefüllt wird (Dreiecke). Da es sich hier um sehr sehr viele Punkte handelt, möchte ich in dem Polygon nur die Referenz auf die Punkte speichern, anstatt jedes Polygon mit den Punkten zu füllen.
Jetzt zu meinem Problem. Ich bin erst seit einigen Tagen beim C++ programmieren und somit noch nicht sehr firm mit der Sprache. Ich habe gelesen, dass man in c++ lieber Referenzen benutzen sollte als Pointer. Also habe ich versucht einen struct zu definieren:
Code:
struct tpolygon
{
tvertex& v1;
tvertex& v2;
tvertex& v3;
tvertex& center;
};
Jedoch beschwert sich der Kompiler bei der initialisierung:
Code:
tpolygon polygon_in
So wie ich dass jetzt sehe, liegt das daran, dass bei der Initialisierung die Referenzen tvertex& v1 ... etc. nicht definiert sind.
Meine Frage ist, wie kann ich diese initialisieren. Denn die Referenzen sind erst zur Laufzeit, also beim konstruieren des tpolygon bekannt. Aber auch das umschreiben in eine Klasse mit einem Konstruktor, der die Referenzen als Parameter benötigt, half mir noch nicht weiter (Pseudocode):
Code:
class tpolygon
{
public:
tpolygon(tvertex& v_1, tvertex& v_2, tvertex& v_3, tvertex& _center);
~tpolygon();
private:
tvertex& v1;
tvertex& v2;
tvertex& v3;
tvertex& center;
};
Ich hoffe, ihr könnt mir vielleicht helfen.
Viele Grüße