Object nur innerhalb Factory erzeugen
-
Guten Abend:)
Ich habe eine Object vom Typ "Foo", der nu" aus der "FooFactory" heraus erzeugt werden darf, und habe dafür folgenden Konstrukt:
ein Object Foo
//.h class Foo { protected: int _data; public: int data() const { return _data; } }; class FooFactory { public: Foo Create(); };
hier die cpp (in der ich Foo ableite, "FooSetter" welche nur aus der Factory aus als objekt aggregator gilt.
//.cpp #include "Foo.h" class FooSetter : public Foo { public: FooSetter(const int& data) { _data = data; } }; Foo FooFactory::Create() { return FooSetter(42); }
und dann das:
FooFactory * fac = new FooFactory(); Foo o = fac->Create(); //Hier is FooSetter unsichtbar
kann ich das auch "schöner" anderes machen.. könnte "friend" verwenden, aber is das dann schöner?
Danke für Euer Feedback
-
Warum meinst Du so ein Factory Objekt zu benötigen? Warum darf ein Foo nur aus einer FooFactory erzeugt werden? Warum kein normaler c-tor für Foo, oder eine statische Funktion "Foo::create"? Warum FooFactory mit new auf den heap legen?...
-
@SoIntMan sagte in Object nur innerhalb Factory erzeugen:
kann ich das auch "schöner" anderes machen.
Ja.
int data;
-
@Swordfish +1 weil ich lachen musste ^^
-
@HarteWare Mission accomplished. Aber ist doch wahr.
-
Das war nur ein exemplarischen Beispiel. Einfach mal davon ausgehen dass es so ist wie es ist
aber an das statische Foo::create hab ich gar nich gedacht.. danke
-
@SoIntMan sagte in Object nur innerhalb Factory erzeugen:
Einfach mal davon ausgehen dass es so ist wie es ist
No Problem. Einfach mal davon ausgehen daß es Quatsch ist.