P.roblem s.olved :)



  • Und das mein Code, bis jetzt:

    /*
     * dynamischesFeld.cpp
     *
     *  Created on: 29.01.2010
     *      Author: c.groupe
     */
    
    #include <iostream>
    using namespace std;
    
    class Feld
    {
    public:
    	Feld (int Unten, int Oben);
    	Feld (int Grenze);
    	virtual ~Feld() {delete [] itsFeld;}
    	int get (int index);
    	void set (int index, int wert);
    	int getSize()  {return itsOben-itsUnten;}
    	int getLower() {return itsUnten;}
    	int getUpper() {return itsOben;}
    	void display();
    
    private:
    	int *itsFeld;
    	int itsUnten, itsOben;
    };
    
    Feld::Feld (int Unten, int Oben)
    {
    	if (Oben > Unten)
    	{
    		int size, i;
    		this->itsUnten = itsUnten;
    		this->itsOben  = itsOben;
    		size = getSize();
    
    		itsFeld = new int[size];
    		for (i=0; i<size; ++i)
    			itsFeld[i]=0;
    	}
    	else
    	{
    		clog << "Fehlermeldung: Oberegrenze ist kleiner als Unteregrenze";
    		itsFeld = new int [0];
    		this->itsUnten = 0;
    		this->itsOben  = 0;
    	}
    }
    Feld::Feld(int Grenze)
    {
    	int size, i;
    
    	if (Grenze > 0)
    	{
    		this->itsUnten = 0;
    		this->itsOben  = Grenze;
    		size = getSize();
    		itsFeld = new int [size];
    		for (i=0; i<size; ++i)
    			itsFeld[i]=0;
    	}
    	else
    	{
    		clog <<"Fehlermeldung: Falsche Grenzen\n";
    		itsFeld = new int [0];
    		this->itsUnten = 0;
    		this->itsOben  = 0;
    	}
    }
    int Feld::get(int index)
    {// Lesen einen Wertes
    	if((index >= itsUnten) && (index < itsOben))
    		if (itsUnten <= 0) return itsFeld[((-1)*itsUnten) + index];
    		else return itsFeld[index - itsUnten];
    	else
    	{
    		clog <<"get() -> Fehler, Feld nicht vorhanden\n";
    		return 9999999;
    	}
    }
    
    void Feld::set(int index, int wert)
    {// Wert wird hier gesetzt
    	if((index >= itsUnten) && (index < itsOben))
    		if (itsUnten <= 0) itsFeld[((-1)*itsUnten) + index] = wert;
    		else
    			itsFeld[index - itsUnten] = wert;
    	else
    		{
    			clog <<"set() -> Fehler, Feld nicht vorhanden\n";
    //			return 9999;
    		}
    }
    
    void Feld ::display()
    {// Bildschirmausgabe des Feldes
    	int size = getSize();
    	for (int i = 0; i < size; i++)
    		cout << itsFeld[i] << " ";
    	cout << "\n";
    }
    
    int main()
    {
    	int i;
    	Feld v1(1,3), v2(-5,+5), v3(10);
    
    	if (v1.getSize() == v2.getSize())
    		cout << "v1 und v2 haben die gleiche Dimension\n";
    
    	v2.set(-1,42);
    	i = v2.get(-1);
    	v1.display();
    
    	return 0;
    }
    

    wo ist mein denkfehler ? ich kann nichts machen ich finde ihn nicht.



  • Was genau funktioniert denn nicht?



  • This application has requested the Runtime to terminate it in an unusual way.
    Please contact the application's support team for more information.



  • Debug die Applikation mal. Einfach Breakpoint an den Anfang der main setzen und steppen. Irgendwann kommt dann die Fehlermeldung und dann weisst du auch, wo der Fehler ist.



  • kommt immernoch das selbe.. mhm



  • Fällt dir hier rein gar nichts auf

    Feld::Feld (int Unten, int Oben)
    {
        if (Oben > Unten)
        {
            int size, i;
            this->itsUnten = itsUnten; // Was weist du hier zu?
            this->itsOben  = itsOben;
            size = getSize();
    


  • omg, danke 🙂

    manchmal sieht man einfach die hand vor den augen nicht mehr, wenn man zulange vorm bildschirm sitzt, danke


Anmelden zum Antworten