Ich habe eine Klasse X
und Methode addX()
, die Objekte von X
auf dem Heap reserviert. Ich möchte den Client-Code davon abhalten, Objekte von X
direkt zuzuweisen (so dass X *ptr = new X
nicht erlaubt ist).Beschränken Client von Zuweisen von Objekten auf Heap C++
Ich habe new
, new[]
Betreiber private deklariert, aber da ich X's objects
durch addX()
bin Zuweisung muss ich sie (Betreiber) definieren. Wie sollte ihre Definition aussehen?
Könnten Sie geben eine vollständigere (Pseudo-) Code-Beispiel von dem, was Sie versuchen, bitte zu erreichen. Außerdem sollten Sie sich mit Ihrem Anwendungsfall auseinandersetzen und warum Sie diese Einschränkung tatsächlich benötigen. –
Ich entwickle ein Framework, das intern alle Objekte behandelt. der Benutzer muss nur addThis() oder removeThat() usw. aufrufen. – ibe
@ibe Haben Sie in Betracht gezogen, die Erstellung komplett abzuschalten, indem Sie Konstruktor (und möglicherweise Destruktor) 'privat' machen und nur eine' public'-Memberfunktion bereitstellen, die Ihre Objekte erzeugt ? Wenn Sie steuern möchten, wie Ihre Objekte erstellt werden, wäre das die einfachste Sache, IMO. – PaulMcKenzie