ich bin gerade etwas verwirrt. Ich habe in einer Klasse A im Konstruktor arrays mit Elementen versehen. Nun wollte ich diese Elemente einer anderen Klasse B nutzen. Ich habe also ein Objekt A a = new A; erstellt und wollte nun mit dem Befehl a->array.value().x darauf zugreifen. Leider werden mir alle Werte sofort gelöscht sobald ich aus dem Konstruktor raus bin.
Warum ist das so? Ich kann mir das irgendwie nicht erklären. Vielen Dank für eure Antworten.
EDIT:
Tut mir leid für mein spätes Edit. Ich hoffe jetzt wird die Sache klarer. Ich definiere ein array mit allen zugehörigen Elementen im Konstruktor einer Klasse A. Nun möchte ich diese Werte in meiner Klasse B nutzen.
Sobald ich aber den Konstruktor in Klasse A verlasse, werden alle Elemente meines Arrays gelöscht. Weiß vielleicht irgendwer woran das liegen könnte? Unten habe ich nochmal mein Problem in einem sample-Code beschrieben:
Zunächst die Klasse A:
Code:
class A()
{
QVector<Point3d> point_s;
}
A::A()
{
point_s.resize(5);
for (int i = 0; i < 5; ++i)
{
point_s[i].x = i;
point_s[i].y = i+1;
point_s[i].z = i+2;
}
}
In Klasse B möchte ich nun die Werte meines Arrays nutzen. Ich erstelle ein Objekt der Klasse A:
Registriert: Di Okt 13, 2009 17:25 Beiträge: 365
Programmiersprache: C++
In welcher Programmiersprache codest du denn? Kannst du bitte etwas ausführlicher deinen Code (mit Codetags!) posten? Von dem, was du geschrieben hast, kann ich jedenfalls keinen Fehler ableiten.
Registriert: So Feb 05, 2012 02:02 Beiträge: 3
Programmiersprache: c++
Nur so ne Vermutung:
Ersetz mal die Zeile "c->draw(a->point_s);" durch c->draw(&a->point_s);
und ändere die draw Methode wie folgt ab:
Code:
void C::draw_points(QVector<Point3d> & point)
{
int count =1;
double angle= 360/count;
for(int i=0;i<5;i++)
{
glRotated(angle,0,1,0);
draw(point);
}
}
Ich kenne die Fachbegriffe nicht ganz, aber:
Bei a->point_s übergibts du eine KOPIE. Jeh nachdem wie der Kopierkonstruktor geschrieben ist, ist eine Kopie nicht immer eine wirkliche Kopie. Deswegen versuch einfach mal mit dem Original zu arbeiten (du liest ja nru also sollte ncihts schlimmes passieren).
Wenn dass auch nciht funktioniert, schreib dir ne getter methode für die anzahl der elemente in point_s und ne getter emthode für das 'n'-te Element von point_s.
Gruß, Loesil (Wenn du noch fragen hast PM einfach)
Mitglieder in diesem Forum: 0 Mitglieder und 17 Gäste
Du darfst keine neuen Themen in diesem Forum erstellen. Du darfst keine Antworten zu Themen in diesem Forum erstellen. Du darfst deine Beiträge in diesem Forum nicht ändern. Du darfst deine Beiträge in diesem Forum nicht löschen. Du darfst keine Dateianhänge in diesem Forum erstellen.