benötige hilfe



  • hallomein dozent kam grad mit folgender aufgabe:

    1. Was passiert hier (Jede //Zeile kommentieren)
    class TPoint { //1
    protected: //2
    int x,y; //3
    public: //4
    TPoint() { x=0; y=0} //5
    TPoint(x0,y0) { x=x0; y=y0} //6
    ~TPoint(); {}; //7
    Move(a,b) { x+=a; y+=b; } //8
    Show() { cout << “x: “ << x << “, y: “ << y << endl; } //9
    private: //10
    int nr; //11

    2. Erzeugen Sie zwei TPoint-Objekte, eines statisch mit Vorgabe von x, y, eines dynamisch ohne Vorgabe <code>.

    3. Es seien ein statisches TPoint-Objekt P1 und ein dynamisches P2 vorhanden (erzeugt wie in 2.)
    Rufen Sie für beide Move(a,b) und anschließend Show() <Code notieren> auf und geben Sie an, wie die Ausgabe ausssehen würde (a,b beliebig <> 0)

    4. <code>
    a) Leiten Sie eine Klasse TLine von TPoint ab, welche zusätzlich zwei ganze Zahlen x1 und y1 enthält.
    b) Machen Sie neue Konstruktoren, so dass x1 und y1 nicht undefiniert bleiben.
    c) Definieren Sie ein neues Show(), welches alles anzeigt.

    5. Was passiert hier (Annahme, dass Quellcode so korrekt ist):
    TCircle Kreis1(1,2,3); //1
    Kreis1.Increase(3); //2
    Kreis1.Show(); // Ausgabe „Circle at 1,2 with diameter 6“

    kAnn mir jemand dabei helfen? 😞





  • class TPoint { //1
    protected: //2
      int x,y; //3
    public: //4
      TPoint() { x=0; y=0} //5
      TPoint(x0,y0) { x=x0; y=y0} //6
      ~TPoint(); {}; //7
      Move(a,b) { x+=a; y+=b; } //8
      Show() { cout << “x: “ << x << “, y: “ << y << endl; } //9
    private: //10
      int nr; //11
    };
    

    Was glaubst du denn, was hier passiert? Es bringt dir gar nichts, eine Lösung vorgesetzt zu bekommen, ohne dir selbst Gedanken gemacht zu haben.

    Versuche doch wenigstens, zumindest einen Ansatz für jede Aufgabe zu erarbeiten.



  • weis jemand was an diesem Code fasch ist?

    #include <iostream.h>
    
    void main(void)
    {
    	cout << 'A' << 'B' << '1' << '2' << '\\' << '\n';
    
        cout << 'x' << '\t' << 'y' << '\n';
    
    	cout << "Beep" << 'a' << 'n\';'
    }
    

    Fehlermeldung: error C2143: Syntaxfehler : Fehlendes ';' vor '}'
    danke schon mal im vorraus
    nicosio 😃



  • Es heisst: #include<iostream>

    es fehlt: using std::cin;

    und es heisst: int main()



  • Alles mögliche...
    Ist ist übrigens nicht ok, einen fremden Thread für ein eigenes Problem zu hijacken, also mach´ bitte einen eigenen Thread dazu auf.



  • chaser38 schrieb:

    mein dozent kam grad mit folgender aufgabe:

    1. Was passiert hier (Jede //Zeile kommentieren)

    class TPoint {								//1
      protected:								//2	
        int x,y;                                               //3
      public:                                                  //4
        TPoint() { x=0; y=0}						//5
        TPoint(x0,y0) { x=x0; y=y0}					//6
        ~TPoint(); {};							//7
        Move(a,b) { x+=a; y+=b; }						//8
        Show() { cout << “x: “ << x << “, y: “ << y << endl; }	//9
      private:									//10
        int nr;									//11
    

    Antwort zu 1: hier wird Code vorgestellt, der Verbesserungspotential besitzt.

    zu //2.) warum 'protected' - hier soll doch nicht etwa abgeleitet werden können (s. [Mey1] Item 36)
    zu //5.) Initialisierungslisten nicht benutzt, Initialisierung von 'nr' vergessen (s. [Mey1] Item 12)
    zu //6.) wie 5. und Syntaxfehler - korrekt wäre TPoint( int x0, int y0 )
    zu //7.) überflüssig
    zu //8.) Syntaxfehler - korrekt wäre void Move( int a, int b )
    - Design besser: void Move( const TPoint& b ) oder eine äquivalente TPoint-Differenzklasse
    zu //9.) Returntyp vergessen
    - const vergessen (s. [Mey1] Item 21)
    - besser: Streaming-Operator; dann wäre TPoint pnt; cout << pnt; möglich

    Ich hoffe bloss, dass Euer Dozent das nicht als beispielhaften Code vorgestellt hat.

    [Mey1] Effektiv C++ programmieren, Scott Meyers, ISDN 9783827313058


  • Mod

    zu 5: Überflüssig, identisch zu 6 mit Defaultparametern
    zu 5: Unbegründete magische Werte "0". Erschwert Debuggen dadurch das uninitialisierte Objekte für den Debugger wie initialisierte Objekte aussehen.
    zu 8: Funktion hat gleiche Semantik wie eine Operator +=, lieber Operator += benutzen um einheitlich zum Rest der Welt zu sein
    zu 11: Warnung: unbenutze Variable. Vorgesehener Zweck wegen schlechter Namensgebung unklar.
    zu 5 und 6: Syntaxfehler, Semikolon erwartet vor '}'

    Habe leider keine schöne Referenz dazu, kann nur sagen, dass ich das schöner finde.

    Wow, so viele Fehler oder Schwächen in so wenigen Zeilen, ich glaube das ist ein neuer Rekord.



  • Da sind sogar noch mehr Fehler:
    zu 7: zwei semikolonfehler
    zu 12: hast du ein }; am ende?


  • Mod

    HighLigerBiMBam schrieb:

    zu 12: hast du ein }; am ende?

    Ja, das ist im ersten Post noch da. Aber ich habe noch mehr:

    zu 9: Ganz fies zu finden: “ ist ein anderes Zeichen als "



  • SeppJ schrieb:

    zu 9: Ganz fies zu finden: “ ist ein anderes Zeichen als "

    😮 Das hätte ich im Leben nicht gefunden... 👍 Aber ich sehe im Post des Autors kein }; Bin ich blind?


Anmelden zum Antworten