Objekte in anderen Objekten ohne Vererbung



  • Hi @ all,

    gibt es in C++ die Möglichkeit Objekte in anderen Objekten zu erzeugen und von aussen auf diese zuzugreifen wobei:

    1. das Objekt nicht public sein darf
    2. bzw. das Löschen des Objektes von aussen nicht möglich ist ?
    3. Das Objekt in das dieses eingebettet ist, die Möglichkeit hat, auf Änderungen die an diesen gemacht werden zu reagieren ?

    class CProject 
    {
      CToDoList ToDolist;
      CBugList Buglist;
    };
    

    Geht das nur indem ich sozusagen von einem möglichen Interface von CToDoList ableite und die dann in CProject implemeniere (bzw. gleich von CToDoList ableite) ?
    Ich spiele hier auf die Properties an die es zb in Object Pascal (also auch in Delphi) gibt.



  • Hi,

    so ungefähr?:

    #include <iostream>
    
    class Foo {
      int bar;
    public:
      void setBar(int i) { bar = i; }
      int getBar() const { return bar; }
    };
    
    class Bar {
      Foo f;
    
    public:
      Foo& getFoo() { return f; }
    };
    
    int main() {
      Bar b;
      b.getFoo().setBar(8);
      std::cout << b.getFoo().getBar() << std::endl;
      return EXIT_SUCCESS;
    }
    

    Auf Änderungen reagiert es momentan noch nicht. Dazu müsstest du jedesmal wenn an Foo was geändert wird, an Bar eine Nachricht senden, damit der was davon mitkriegt.

    MfG

    GPC


Anmelden zum Antworten