Was kann ich in C ++ "weiterleiten"?

8

Ich weiß, dass ich es tun kann

%Vor%

und wahrscheinlich

%Vor%

und globale Funktionen

%Vor%

Was ist mit einer typisierten Enum? Was ist mit einem typisierten Enum in einer nicht deklarierten Klasse? Was ist mit einer Funktion mit einer nicht deklarierten Klasse? Was ist mit einem statischen Mitglied in einer nicht deklarierten Klasse? Was ist mit diesen in einem unbekannten Namensraum? Fehle ich noch etwas, das vorwärts erklärt werden kann?

    
franji1 26.09.2010, 21:11
quelle

1 Antwort

12

Sie können declare

weiterleiten
  • Vorlagen, einschließlich Teilspezialisierungen
  • Explizite Spezialisierungen
  • Verschachtelte Klassen (dies beinhaltet Strukturen, "echte" Klassen und Unionen)
  • Nicht verschachtelte und lokale Klassen
  • Variablen ("extern int a;")
  • Funktionen

Wenn Sie mit "forward declaration" ausschließlich "deklarieren, aber nicht definieren" meinen, können Sie auch deklarierte Memberfunktionen weiterleiten. Aber Sie können sie nicht in ihrer Klassendefinition neu deklarieren, sobald sie deklariert sind. Sie können Enumerationen nicht weiterleiten. Ich bin mir nicht sicher, ob ich etwas verpasst habe.

Bitte beachten Sie, dass alle oben aufgeführten Forward-Deklarationen mit Ausnahme von partiellen und expliziten Spezialisierungen unter Verwendung eines nicht qualifizierten Namens deklariert werden müssen und dass Member-Funktionen und verschachtelte Klassen nur in ihrer Klassendefinition deklariert, aber nicht definiert werden können. p> %Vor%     

Johannes Schaub - litb 26.09.2010, 21:17
quelle

Tags und Links