Wert wird nicht an Array übergeben



  • Hallo,

    Verständnisfrage

    static array <int> ^eckpunkte = gcnew array <int> (8);
    
    	public: 
    
    		void Quadraht_100(){...}
    
    		void zQuadraht_100(){...}
    		//quadraht rechnen
    		void rQuadraht(int wert){
    			double rechne = 100 - wert;
    			rechne = rechne * 0,7;
    
    			eckpunkte[0] = eckpunkte[0] + rechne;
    
    		}
    

    ich habe ein Array angelegt, welches ich mittels einer Funktion mit neuen Werten zuweisen möchte, siehe

    private: System::Void Form1_Load(System::Object^  sender, System::EventArgs^  e) {
    			 //eckpunkte festlegen
    			 Quadraht_100();
    			 //caosquadrat zeichen
    			 zQuadraht_100();
    			 //größe andern
    			 rQuadraht(120);
                //eckpunkte[0]=53; Wert wird neu geschrieben 
    
    			 textBoxAbfragen->Text=Convert::ToString(eckpunkte[0]);
    
    		 }
    

    die Werte werden aber bei der Funktion rQuadrat nicht übernommen/übergeben??
    erstelle ich in der Load-Anweisung eine Zuweisung, dann werden die Werte übernommen,

    Wo liegt mein Fehler?? müsste doch eigentlich gehen.
    Abgesehen von den Konvertierungsproblem, was noch behoben wird.

    mfg FV



  • Warum legst Du ein statisches Array an?
    Übergebe es doch einfach?

    Und ganz vertanden hab ich jetzt nicht was Du willst, da Du das Array ja nirgends verwendest; außer beim Ausgeben des ersten Elementes...

    VIelleicht solltest Du auch lieber "List<int>^" verwenden... ist ein wenig flexibler, da die Größe nicht fix ist, wie das bei einem Array ist...



  • Ich nehme an, dass er das Array statisch anlegte, weil es ohne static nicht ging (= er konnte es nicht dort erzeugen wo es deklariert wurde), weil er nicht wusste, dass das im Konstruktor gehen würde. 🕶

    Gehört wahrscheinlich in die Kategorie Problem Lösugen mit casts oder static...



  • hi,

    ich verwende es schon!!, ich hatte nur die Eckdaten hier kopiert,

    warum ich es nicht mit Ref Class im Konstruktor erstellt habe wollte ich auch nicht wissen, ich wollte nur wissen warum ich nicht auf ein Static Array global über eine Funktion zugreifen kann um Werte im Array zu ändern.

    auf Links wie
    http://www.c-plusplus.net/forum/viewtopic-var-t-is-274491-and-postdays-is-0-and-postorder-is-asc-and-highlight-is-array+im+konstruktor-and-start-is-0.html
    oder
    http://msdn.microsoft.com/de-de/library/fkzha470(v=VS.80).aspx
    brauch nicht verwiesen zu werden,

    ich suche keine Lösung für das Problem, ich suche den Grund warum es so nicht geht!!!

    MfG FV



  • Ich verstehe aus dem Text den Du geschrieben hast nicht was jetzt nicht geht und was Du erreichen willst.



  • Wenn Du nicht zugreifen kannst, dann darfst Du es vermutlich nicht... also entweder befindest Du Dich nicht in der gleichen Klasse oder es ist nicht public/internal...



  • hi,

    habe nun mein Schusselfehler gefunden

    rechne = rechne * 0,7;
    

    so ist es wenn man sich zu sehr auf den Ziffernblock einschießt, vll hatte ich mein Problem auch etwas umständlich beschrieben
    trotzdem Danke

    MfG FX


Anmelden zum Antworten