Bestimmen wer von Klasse Objekt erzeugen kann.
-
Hallo,
folgendes Beispiel:
class Hallo {}; class Tag { private: Hallo obj; // Tag darf erzeugen }; int main() { Hallo nix;// In main darf kein Hallo-Objekt erzeugt werden }Ich will das meine Klasse nur in bestimmten Klassen benutzt werden kann...
Fragt mich nicht wieso, ist nur aus Neugier

-
Mir ist da eine Möglichkeit eingefallen:
Den Konstruktor in Hallo privat machen und Tag als friend Klasse deklarieren...
Ist das ne saubere Möglichkeit, oder gibt es noch andere ??
-
Als Alternative könntest du Hallo als private Teilklasse von Tag definieren:
class Tag { private: class Hallo {}; ... };Was anderes fällt mir atm auch nicht ein.