[gelöst] Rechtwinkliges Dreick



  • @manni66
    Das soll keine Ausgabe sein, wollte damit eigentlich bezwecken , das die Standardwerte im Defaultkonstrukor gesetzt werden .

    @inflames2K
    Das ist mir schon klar, aber wie setzte ich im Defaultkonstruktor die Seiten auf die Standardwerte ?



  • Moritz Vogt schrieb:

    @manni66
    Das soll keine Ausgabe sein, wollte damit eigentlich bezwecken , das die Standardwerte im Defaultkonstrukor gesetzt werden .

    Ja, das ist mir klar. Was aber glaubst du, was deine asugabe-Funktion dann ausgibt?



  • Dem Objekt A hab ich ja nix mitgegeben, also sollte sich doch das Objekt die Standardwerte aus dem Konstruktor holen ?
    Habe gedacht der Compiler erzeugt dann das Objekt A mit dem Defaultkonstruktor ?



  • Moritz Vogt schrieb:

    Dem Objekt A hab ich ja nix mitgegeben, also sollte sich doch das Objekt die Standardwerte aus dem Konstruktor holen ?
    Habe gedacht der Compiler erzeugt dann das Objekt A mit dem Defaultkonstruktor ?

    Ja, das ist richtig. Was aber glaubst du, was deine asugabe-Funktion dann ausgibt?



  • Hallo,

    deine Annahme ist ja völlig korrekt. Allerdings ist '5' nicht gleich 5. Du musst zwischen Zeichen und Zahlen unterscheiden!

    Bei '5' sollte die Variable den Wert 53 erhalten. Ich nehme an, dein Dreieck A spuckt folgendes aus:

    Ausgabe von Dreick A :
    Die Seite a lautet : 51
    Die Seite b lautet : 52
    Die Seite c lautet : 53



  • Ich hab gehofft das er die Standardwerte ausgibt, leider ist dem nicht so 😞
    Er gibt 51,52,53 aus was ich überhaupt nicht verstehe .



  • Ohhhh man was ein Anfänger fehler 😡 😡
    Habs verwechselt mit dem Char Typen



  • Trotzdem komm ich nicht bei der zweiten Aufgabe weiter/weis nicht wie ich das angehen soll.



  • Welchen Teil? Zuweisen der Parameter wird ja nicht das Problem sein. Also der Test ob es ein rechtwiklinges Dreieck ist? Dazu hat inflames2k ja schon einen Tipp gegeben.



  • @all

    Meine Objkete B und C zeigen aber nicht die Werte an die ich ihnen mitgegeben habe. Zeigen einen Random wert was ja klar ist wenn sie anscheinend nicht definiert sind.
    Was hab ich falsch gemacht ? Habe den Objekten in der Main doch seine Werte gegeben .

    Zu der berechnung ob das Dreieck Rechtwinklig ist :
    Bin ich mir noch nicht sicher ob das soo stimmt 😞

    Dreieck::Dreieck(int a,int b ,int c )
    {
    	if((c*c)==(a*a)+(b*b))
    	{
    		cout<<"Rechtwinklig"<<endl;
    	}else if ((a*a)==(b*b)+(c*c))
    	{
    		cout<<"Rechtwinklig"<<endl;
        }else if ((b*b)==(a*a)+(c*c))
    	{	
    		cout<<"Rechtwinklig"<<endl;	
    	}else
    	{
    		cout<<"Nicht Rechtwinklig"<<endl;
    	}
    
    }
    


  • Dann musst du dir wohl nochmal das Kapitel über Konstruktoren in deinem Lehrbuch anschauen.



  • Ganz einfach. - Allein die übergabe der Werte in den Konstruktor weist diese Daten noch lang nicht zu den Klassen-Feldern zzu.



  • Ok Danke für eure Hilfe 😃
    Werde mich nochmal genauer über Konstruktoren und destruktoren schlau machen



  • Vielleicht solltest du den Parametern auch mal andere Namen geben als den Variablen in deiner Klasse. Führt sonst nur zur Verwirrung ob man gerade den Parameter a oder die Membervariable a meint.



  • @sebi707 Hätte vielleicht den This-Zeiger benutzen sollen, habe es jetzt aber mit anderen Parameternamen gemacht



  • sebi707 schrieb:

    Vielleicht solltest du den Parametern auch mal andere Namen geben als den Variablen in deiner Klasse. Führt sonst nur zur Verwirrung ob man gerade den Parameter a oder die Membervariable a meint.

    Besser wäre es, eine Initialisierungsliste zu verwenden.



  • manni66 schrieb:

    Besser wäre es, eine Initialisierungsliste zu verwenden.

    Wolltest du wirklich meinen Beitrag zitieren? Eine Initialisierungsliste ist zwar schön und funktioniert auch wenn Parameter und Membervariablen gleich heißen, aber gerade für Anfänger ist es doch gut zu sehen, dass es einen Unterschied zwischen den Beiden gibt. Unterschiedliche Namen und Initialisierungsliste schließen sich ja nicht aus.



  • Und du solltest auch noch betrachten, dass c nicht immer die Hypotenuse ist. Das Dreieck (5,4,3) ist auch rechtwinklig, genauso wie (3,5,4).



  • DocShoe schrieb:

    Und du solltest auch noch betrachten, dass c nicht immer die Hypotenuse ist. Das Dreieck (5,4,3) ist auch rechtwinklig, genauso wie (3,5,4).

    Das hat er doch schon drin in seinem Test. Wenn auch nicht übermäßig elegant durch Aufzählung aller Fälle. 😉



  • Jester schrieb:

    DocShoe schrieb:

    Und du solltest auch noch betrachten, dass c nicht immer die Hypotenuse ist. Das Dreieck (5,4,3) ist auch rechtwinklig, genauso wie (3,5,4).

    Das hat er doch schon drin in seinem Test. Wenn auch nicht übermäßig elegant durch Aufzählung aller Fälle. 😉

    Alter Schwede, muss mal zum Optiker, fürchte ich.


Anmelden zum Antworten