Wann kann man Forward Declaration in C++ verwenden?
Hallo zusammen! Ich lerne C++ und stoße ständig auf den Begriff "forward declaration". Ich verstehe zwar ungefähr, was das ist, aber mir ist nicht ganz klar, wann man es *braucht* und wann es die Sache nur komplizierter macht.\n\nZum Beispiel habe ich zwei Klassen: `A` und `B`. Klasse `A` enthält einen Zeiger auf `B`, und Klasse `B` enthält ein Objekt von `A` by value. Ich versuche, etwa so zu schreiben:\n\n```cpp\n// A.h\n#include "B.h"\nclass A {\n B* ptr;\n};\n\n// B.h\n#include "A.h"\nclass B {\n A obj;\n};\n```\n\nNatürlich kompiliert das nicht wegen der zirkulären Abhängigkeit. Ich habe gehört, dass man Forward Declaration verwenden kann, um diesen Zyklus zu durchbrechen. Aber wie genau? Und in welchen anderen Situationen wird das angewendet?\n\nAußerdem habe ich gesehen, dass man in Header-Dateien manchmal `class MyClass;` vor der Definition schreibt.
Noch keine Antworten.
Anmelden um eine Antwort zu hinterlassen
Blogs
Die 10 besten Kotlin-Frameworks für die Webentwicklung im Jahr 2025
Top-10-Schwachstellen von C#-Anwendungen und wie man sie vermeidet
Zero-Downtime-Deployment von Rust-Diensten: Neustart ohne Ausfallzeiten
Clean Code auf Swift: Prinzipien und Praxisbeispiele