operator &() "un-überladen"



  • Ich hab' eine basisklasse (die Basisklasse und unverädnert bleiben muß), die unanständigerweise den Adreßoperator überlädt.

    Kann ich das irgendwie für meine abgeleiteten Klassen maskieren?
    Oder irgendwas generisches anwenden?

    im Prinzip hab ich:

    class CDoofeKlasse  // nicht von mir
    {
      public: ..operator&()...
    };
    
    class CBessereKlasse : public CDoofeKlasse // vor mir :-)
    {
      ...
    };
    
    class CSomething123 : public CBessereKlasse // von der Sorte gibt es viele
    {
      ...
    };
    

    Ich kan CDoofeKlasse nicht verändern, und CBessereKlasse muß davon abgeleitet bleiben.
    Kann ich trotzdem _irgendwas_ in CBessereKlasse anstellen, daß (a) CSomething123 einen sinnvollen Adreßoperator hat, oder (b) wenigstens in CSomething123 eine Memberfunktin mit der "richtigen" Adresse habe?

    (Zur Zeit nehme ich ein macro

    #define X(CLASS) CLASS * Addr() { return this; } CLASS const * Addr() const { return this; }
    

    das ich in jeder CSomething123 einfüge, aber vielleicht gibt's da ja was besseres...



  • ist der op& virtual?



  • nö, aber schöne Idee 🙂



  • peterchen schrieb:

    class CBessereKlasse : public CDoofeKlasse // vor mir 🙂

    Musst du public erben?


Anmelden zum Antworten