Announcement

Collapse
No announcement yet.

Oberstes Objekt in der C++-Hierarchie?

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • Oberstes Objekt in der C++-Hierarchie?

    Hallo,

    aus Java kenne ich die Situation, dass Object bzw. TObject die obersten Klassen darstellen, von denen alle ableiten. Wie ist das in C++, welchen Klassentyp kann ich da nehmen, wenn ich den allgemeinsten benutzen möchte?

    In Java hätte ich z.B. für das Observer-Model solch eine Methode:
    Code:
    void NotifyObservers(Object sender) {...}
    Wie mache ich das in C++? Vielleicht mittels void?
    Code:
    void NotifyObservers(void *sender) { ... }
    Danke für eure Hilfe!

  • #2
    Es gibt in C++ kein oberstes Objekt.
    Solltest du Frameworks benutzen VCL (Borland), MFC (MS), Qt (Trollltech) kann es natürlich innerhalb dieser Frameworks oberste Objekte geben.

    Was NotifyObservers als Parameter will, sollte derjenige wissen, der die Klasse / Methode entworfen hat.

    Das ist in Java auch nicht anders. Der Stringmethode replaceAll kannst du keinen Long oder Object übergeben
    Zuletzt editiert von Christian Marquardt; 09.07.2008, 13:15.
    Christian

    Comment


    • #3
      Hallo!
      Danke für die Antwort. Nein, ich benutze kein Framework, ich arbeite unter Linux mit den einfachsten Mitteln.
      Mit NotifyObservers benachrichtig man nach dem Observer-Pattern nunmal die Beobachter und dann ist es gebräuchlich, eine Instanz des aktuellen Objektes mitzugeben, damit die Beobachter wissen, welches Datenmodell sich nun geändert hat.
      Da jede Klasse ein Beobachter sein kann und schließlich NotifyObservers implementiert, muss der Parameter allgemeingültig sein. Das heißt, ich weiß eben nicht, was ich dort reinstecke.

      Comment


      • #4
        void kannst du nehmen und dann?

        innerhalb der Funktion müsstest du das in was? casten, um was mit dem Ding zu machen

        Also müsstest du selbst ein Framework schaffen...
        Christian

        Comment

        Working...
        X