Eigene Klasse Vektor



  • Sepp Brannigan schrieb:

    int getDim() const { return dim; } // würd ich übrigens inline machen
    

    Ist es so auch schon.



  • operator void schrieb:

    Ist es so auch schon.

    echt? Bitte mehr Info! *lechz*



  • Sepp Brannigan schrieb:

    operator void schrieb:

    Ist es so auch schon.

    echt? Bitte mehr Info! *lechz*

    wird die funktion innerhalb der klasse definiert, ist sie automatisch inline.



  • aha ... ist mir wohl entgangen.



  • Danke für die vielen Tipps! 🙂

    Mal ne andere Frage:
    Wenn ich in einer Klasse einen Zeiger defiere und diesen per Konstruktor einem
    konstanten Zeiger zuweisen will, wie mache ich das?

    class Flugzeug
    {
    	private:
    		char *typ;
    		...
    	public:
    		Flugzeug(const char *t) : typ(t) {}
                      ...
    };
    

    So klappts nicht. Wie denn?

    THX
    Tobias



  • Du bekommst nen Zeiger auf konstanten Inhalt, weist den einem anderen - nicht const - zu und schon kannst nach Herzenslust rumschreiben... wär doch frech!
    Also entweder den Zeiger *char typ; als *const char typ; deklarieren, oder das const aus der Parameterliste des Konstruktors rausschmeissen. Das wär aber unpraktisch, da man dann keine Zeichenketten mehr direkt übergeben kann - also: Flugzeug("Boing 747"); würd dann nicht mehr gehen.

    Ausserdem: Hier ist nicht der Zeiger konstant, sondern der Inhalt.

    const char *const abc = "abc";
    

    Das const vor dem char bezieht sich auf den Inhalt. Das andere auf den Zeiger selbst. Ist ein feiner Unterschied.
    Aber wer die Wahl hat ... braucht für den Spott nicht zu sorgen - oder wie war das?



  • THX!

    Aber wenn ich char *typ nun auch const mache, speichere ich dann nicht nur den ersten Buchstaben des übergebenen Namens?

    OK -> Hat sich erledigt. My fault!

    Ciao & nochmals Danke!



  • Alles was du mit z.B. der Variable typ speichern kannst ist die Adresse eines Zeichens irgendwo im Speicher - mehr nicht! Möglicherweise ist dieses Zeichen das erste einer null-terminierten Zeichenkette. Falls du daran denkst eine Zeichenkette in einer Funktion zu übernehmen und dann typ zuzuweisen: Du weist nur die Adresse zu! Ich vermute mal, du willst die übergebene Zeichenkette in der Klasse ablegen - also kopieren. Da wir im C++-Teil dieses Forums sind: Was spricht gegen die Benutzung der Klasse String?



  • Sepp Brannigan schrieb:

    cout << vec;   /* wird intern zu ==> */   cout.operator<<( cout, vec );
    // bzw.
    cout << vec << endl;   /* zu ==> */   endl.operator<<( cout.operator<<( cout, vec ) );
    

    😕



  • PeterTheMaster schrieb:

    😕

    Antwort: 42


Anmelden zum Antworten