Grundsätzlich möchte ich abstrakte Klassenreferenz oder Objekt zu Zeiger dieses Objekts konvertieren, konnte ich nichts im Internet finden. Ich weiß, dass ich gerade & Objekt tun kann, aber ich möchte eine Funktion machen, die Objekt nimmt und Zeiger zurückgibt. Zum Beispiel: GameObject * convert (GameObject & Objekt) Ich brauche eine Funktion für das, weil ich ein Lua-Skripte, die Objekte behandeln, damit ich mein Spiel einfacher mod. Vielen Dank im Voraus.Konvertieren abstrakte Klasse von Objekt zu Zeiger mit einer Funktion
Antwort
. Diese Funktion befindet sich in der Standardbibliothek. Es heißt std::addressof
.
Es wurde in C++ 11, so im Fall Ihre Standardbibliothek zu alt ist, dann eingeführt:
I know i can do just &object
einfach eine Funktion schreiben und die Adresse des Betreibers dort verwenden, wie Sie Sie können nur wissen, machen. (Die triviale Implementierung hat eine Einschränkung, dass der addressof -Operator möglicherweise überladen wird, um die Adresse nicht zurückzugeben. Dies kann vermieden werden, aber ich fühle mich außerhalb des Bereichs meiner Antwort).
The problem is GameObject is an abstract class so it will give an error: cannot instantiate abstract class.
, die mit immer die Adresse eines GameObject
kein Problem ist. Das ist ein Problem beim Erstellen einer Instanz von GameObject
. Sie können Objekte einer abstrakten Klasse nur als Basisklassenunterobjekt instanziieren.
- 1. Initialisierung abstrakte Klasse Objekt Dependency Injection mit
- 2. Zeiger auf Objekt in einer anderen Klasse?
- 3. So rufen Sie eine abstrakte Funktion mit einer abstrakten Klasse
- 4. Zeiger von einer Klasse zur äußeren Klasse?
- 5. Zurückgeben eines Klasse-Objekt mit einem Zeiger
- 6. Return Klasse Zeiger aus einer Funktion
- 7. Abstrakte Klasse mit Standardwert
- 8. Abstrakte Klasse mit abstrakten Generika?
- 9. Einen Zeiger innerhalb einer Klasse zu einem anderen Objekt erstellen
- 10. Konvertieren von Zeiger abgeleitete Klasse zu Pointer Basisklasse (Polymorphismus)
- 11. Java abstrakte Klasse, abstrakte Konstruktor
- 12. Abstrakte Klasse mit typisierten Klasseneigenschaften
- 13. wie Lambda-Ausdruck für die abstrakte Klasse abstrakte Klasse
- 14. Elegante Weise, abstrakte Klasse zu implementieren
- 15. Rückgabe einer abstrakten Klasse von einer Funktion
- 16. abgeleitete Klasse einer Basisklasse funktioniert als eine abstrakte Klasse
- 17. Konvertieren von Doppel Array Zeiger
- 18. Zeiger auf shared_ptr konvertieren
- 19. eine abstrakte Klasse Mocking von einer abstrakten Klasse abgeleitete
- 20. Abstrakte Klasse abgeleitet von Beton Klasse
- 21. C++ Externe Funktion mit Zeiger, um als Parameter zu fungieren, innerhalb einer Klasse mit einer Elementfunktion
- 22. Deserialize-Objekt, das als abstrakte Klasse von SignalR übergeben wird
- 23. eine abstrakte Methode eines Kindes-Klasse von einer abstrakten Klasse
- 24. Konvertieren einer verschachtelten Datenstruktur eine Klasse zu verwenden Objekt
- 25. Abstrakte Klasse erbt Methode und Attribute von einer anderen Klasse
- 26. Wie ein Objekt mit einer Funktion von Zeichenfolge zu erstellen:
- 27. Wie man richtig Zeiger löschen, wenn abstrakte Klassen mit
- 28. Konvertieren einer Klasse von C# (AVL-Baumknoten) zu C
- 29. Python-Objekt in Cython-Zeiger konvertieren
- 30. Abstrakte Klasse mit Swing-Timer
Was ist der Zweck mit einer Funktion, das zu tun? Referenzzählung? – user0042
Was ist los mit 'GameObject * convert (GameObject & Objekt) {return & object;}'? – Knoep
Das Problem ist GameObject ist eine abstrakte Klasse, so wird es einen Fehler geben: kann abstrakte Klasse nicht instanziieren. – Orion