public: vector<..> unbrauchbar?
-
Hi Miteinander,
Ich habe Probleme beim programmieren. Und zwar geht es darum, dass ich auf
eine bestimmte Variable nicht zugreifen kann. Wenn mir jemand das möglichst genau beschreiben kann wäre ich sehr dankbar, weil ich ein relativer Anfänger binstruct F3DSCurvePoint{ double m_adXYZ[3]; double m_adNormal[3]; }; struct F3DSCurve{ vector<F3DSCurvePoint> m_curvePoints; }; public: vector<F3DSCurve> m_curves;
F3DSCurvePoint curvePoint; F3DSCurve actCurve; vector<F3DSCurve> curves; //Lokal, nur so zum testen actCurve.m_curvePoints.push_back(curvePoint); //geht //Beim Lokal definierten geht es ohne weiteres curves.push_back(actCurve); m_curves.push_back(actCurve); // Fehler?????
Bei m_curves, der in .h definiert ist, schmeisst er mir
ein Unhandled Exception.Eigentlich kann ich mit m_curves gar nichts machen, weder push_back, noch
resize, noch empty,... gar nichts. Jedesmal Unhandled Exception. Im
header-file selber ist noch inline-fkt. Sogar dort bringt er den Fehler, wenn ich auf m_curves zugreifen will.Ich hoffe jemand kennst das Problem, und hat eine genauere Lösung für mich. Ich probiers nämlich zum dritten mal
-
Der Code
struct F3DSCurvePoint{ double m_adXYZ[3]; double m_adNormal[3]; }; struct F3DSCurve{ vector<F3DSCurvePoint> m_curvePoints; }; public: vector<F3DSCurve> m_curves;
hat ueberhaupt gar keinen Sinn. Du kannst nicht irgendwo in eine Headerdatei
einpublic: <vars>
schreiben. Wenn du eine globale Variable haben willst, dann schreibst du in
der Header folgendes://headerdatei extern vector<F3DSCurve> m_curves; //in der ue dann vector<F3DSCurve> m_curves;
mfg
v R
-
Medeni schrieb:
m_curves.push_back(actCurve); // Fehler?????[/cpp]
Da fehlt doch was, oder hast du ein Objekt, dass m_curves heißt (was ziemlich doof wäre, denn das m_... sollte ja eigentlich bedeuten, dass das Objekt ein Classmember ist)?
Ansonsten siehe v R
-
Was tut "extern"? und was bedeutet ue
-
Medeni schrieb:
Was tut "extern"? und was bedeutet ue
Als UE bezeichnet man eine Uebersetzungseinheit (Implementationsdatei *.cpp oder
*.cxx).extern sagt dem Compiler, dass es irgendwo im Aktuellen Projekt bzw. in den an
den Compiler zum uebersetzen uebergebenen UE's eine Variable gibt, welche mit
extern deklariert worden ist. Der Compiler sucht dann selbstaendig nach dieser,
kann sie nicht gefunden werden, dann bekommst du vom Linker einen fehler (sprich,
wenn sie in keiner angegebenen UE definiert worden ist).mfg
v R
-
Hallo,
mal rein interessenmäßig: Wenn du solche Grundbegriffe nicht kennst, dann könnte dein Beispiel u. U. eine Nummer zu hoch gegriffen sein?! Vielleicht solltest du dich erstmal mit den grundlegensten Sachen vertraut machen und/oder ein Tutorial durcharbeiten.