Klassen Prototyp wenn man sie mit typedef definiert hat?



  • Hallo,

    also ich habe zwei Klassen und jede Klasse verwendet die andere.
    Also bräuchte ich den Prototypen, aber da ich die Klassen so definiert habe:

    // ball class
    typedef class
    {
    public:
    
    	float x, y, z, 
    		  xv, yv, zv,
    		  radius, angle, camdist, speed;
    
    	GLUquadric *quadric;
    
    	void init ();								// function to set all the ball variables to 0
    
    	void set ( float x, float y, float z,		// function to set the ball values
    			   float xv, float yv, float zv,
    			   float r, float angle, float camdist, float speed,
    			   GLUquadric * quad_ );
    
    	void move ( Uint8 * keystate, Object *obj[] );				// function to move the ball
    
    } Ball;
    

    .. Also mit typedef vorne dran. Da weiß ich leider nicht wie der Prototyp dazu aussieht
    oder ob es bei typedef überhaupt geht. Wenn es keinen gibt muss ich eben das typedef weglassen und es so machen, wie wir es nicht gelernt haben 😉

    Lg
    SFandler



  • SFandler schrieb:

    und es so machen, wie wir es nicht gelernt haben 😉

    Lass das typedef weg und sag deinem Lehrer, dass er euch nicht so einen Mist beibringen soll...



  • ok Danke 🙂



  • eine kleine Frage noch:

    Also ich schicke meine Object Klasse in eine Funktion ( Will die Variablen der
    Klasse auch verändern können ).
    Das würde dann so aussehen, wenn sie keine Tabelle wäre

    void move ( Object *obj );
    

    Aber ich habe einen Object Array und habe es so versucht:

    void move ( Object *obj[MAX_OBJ] );
    

    Wenn ich dann die Funktion aufrufe:

    ball.move ( &obj );
    

    sagt der Compiler, dass ich obj vom Typ ()[10] nicht in ()[] konvertieren darf?

    Kann mir bitte jemand erklären, warum das nicht geht?



  • Nur so ein paar Tipps:

    • Keine öffentlichen Daten (es gibt Ausnahmen)
    • init() ? Konstruktor!
    • Wieso enthält die Klasse so viele float s? Schreibe Klassen (wie z.B. Vector ).
    • Mach ein set() für jeden Daten-Member. (Wenn du den dritten Punkt befolgt hast, ist es nicht mehr so viel.)
    • move() ist Kindekacke. Implementiere ein sauberes Vector-Matrix-System.
    • Mit Quadriken zu arbeiten ist nicht sehr toll. Mach es mit VBOs.


  • Danke für die Tipps. 🙂


Log in to reply