Zum Forum springen
Benachrichtigungen
Alles löschen

[Geschlossen] Programmierprobleme (C, C++, C#, VB,.. )

8 Beiträge
4 Benutzer
0 Reactions
602 Ansichten
fakmaster
Beigetreten: 11.03.2007
Oldschool Grinder

So da ich noch öfters probleme haben werde, nehm ich mal an hab ich einen allgemeinen thread aufgemacht:

C#: Fehler: "System.StackOverflowException"
es soll mittels get/set eigenschaft einfach berechnet werden, wie viel futter ich für wie viele kühe brauche.. leider haut er mir bei der get methode immer den oben genannten fehler raus.. wenn ich den button berechne drücke..

class Bauer
    {
        public int SäckeFutter;
        public const int FutterMultiplikator = 30;
        private int anzahlKühe;

        public int AnzahlKühe
        {
            get
           { 
                return AnzahlKühe;
            }
            set
            {
                anzahlKühe = value;
                SäckeFutter = anzahlKühe * FutterMultiplikator;
            }
        }
    }

nun da kommt dann halt: Eine nicht behandelte Ausnahme des Typs "System.StackOverflowException" ist in Kühe.exe aufgetreten. und er makiert die erste klammer nach get gelb ?(

Jetzt gehe ich davon aus dass return AnzahlKühe falsch ist.. nur was ist daran falsch? hab das wohl noch nicht ganz durchschaut..


7 Antworten
OrcaAoc
Beigetreten: 06.08.2006
Elite Grinder

anzahlKühe an der Stelle wo es bei get zurückgegeben wird kleinschreiben sollte helfen.


fakmaster Themenstarter
fakmaster
Beigetreten: 11.03.2007
Oldschool Grinder
BigBiber
Beigetreten: 17.09.2006
Oldschool Grinder

Noch ein Tipp ich würde Umlaute auflösen ;)


fakmaster Themenstarter
fakmaster
Beigetreten: 11.03.2007
Oldschool Grinder

Original von BigBiber
Noch ein Tipp ich würde Umlaute auflösen ;)

ok, danke, werd ich mir zu herzen nehmen.. warum leicht? wegen englischem?


BigBiber
Beigetreten: 17.09.2006
Oldschool Grinder

Es ist auch Konvention das keine Umlaute verwendet werden obwohl sie glaube ich gültig sind (noch nie getestet) aber wer weiß wie sie der ein oder andere Compiler verhält und bei Programmiersprachen ist halt Englisch standart :f_cool:


BigBiber
Beigetreten: 17.09.2006
Oldschool Grinder

Also es gibt ein Problem mit C++

Also ich habe eine Funktion:

Matrix Matrix::multiply(Matrix a); und den
Copy-Konstruktor: Matrix::Matrix(Matrix &aMatrix)

Im Test Programm (das vorgegeben ist) steht folgende Zeile:

Matrix g = f.multiply(a);

Nun gibt es aber folgenden Compiler-Fehler:

> simplematrixtest.cc: In function »int main()«:
> simplematrixtest.cc:70: Fehler: keine passende Funktion für Aufruf von
> »Matrix::Matrix(Matrix)«
> Matrix.hh:11: Anmerkung: Kandidaten sind: Matrix::Matrix(Matrix&)

In der Methode multiply wird eine neue Matrix erzeugt und zurückgegeben ich bin ratlos ?(


Dein Copy-Constructor muss so aussehen: Matrix::Matrix(const Matrix &aMatrix)
Begründung: http://en.wikipedia.org/wiki/Copy_constructor#Definition
const-correctness is a bitch ;)


Teilen: