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.


Anmelden zum Antworten