Mögliche Duplizieren:
Detect dynamically allocated object?Wie kann ich feststellen, ob ein Objekt im Konstruktor statisch oder dynamisch zugeordnet ist?
Ich habe ein Objekt, das eine etwas andere Konstruktion erfordert, ob es Instanz ist staticly oder dynamisch zugewiesen. Das Objekt sollte nur einen einzelnen Standardkonstruktor haben. Es ist daher nicht möglich, zwei Konstruktoren zu haben, einen für jeden Fall, und den Benutzer explizit den richtigen Konstruktor auswählen zu lassen.
Gibt es einen geeigneten Weg dies zu erreichen?
So mache ich das im Moment: Ich überladen den neuen Operator für dieses Objekt, malloc den Speicher und verwenden Sie den zurückgegebenen Zeiger als Zeiger auf die (noch nicht initialisierte) Instanz, und legen Sie eine bestimmte Daten Mitglied des Objekts zu einem magischen Wert. Dann überprüfe ich innerhalb des Verbrauchers den Wert des Mitglieds. Wenn es sich um den magischen Wert handelt, wird das Objekt zu 99,9% dynamisch zugewiesen.
Diese Methode ist für mich weder im Relase- noch im Debug-Modus fehlgeschlagen, es scheint jedoch ein schrecklicher Hack zu sein.
Nein, Sie müssen sich mit Ihrem Hack zufrieden geben. Der einzige "richtige" Weg, dies zu tun, ist, dein Design zu reparieren. – jalf