Als Anfänger sollten Sie Header-Dateien immer #include, wenn Sie die Typen oder Funktionen, die sie enthalten, verwenden müssen - versuchen Sie nicht, Ihren Build zu "optimieren", indem Sie Dinge vordeklarieren - das ist fast nie notwendig, selbst bei großen Projekten, vorausgesetzt, das Projekt ist gut aufgebaut.
Nur in Situationen wie dieser ist eine Vorwärtsmeldung unbedingt erforderlich:
struct A {
void f( B b );
};
struct B {
void f( A a );
};
wobei jede Struktur (oder Klasse) auf den Typ der anderen verweist. In diesem Fall benötigen Sie eine Forward-Deklaration von B, um das Problem zu lösen:
struct B; // forward declaration
struct A {
void f( B b );
};
struct B {
void f( A a );
};
2 Stimmen
Voir stackoverflow.com/questions/553682/