1.用來解決兩個類之間的強耦合問題,例如:函數
#include "B.h" class A { B b; public: A(void); virtual ~A(void); }; #include "A.h" A::A(void) { } A::~A(void) { } #include "A.h" class B { A a; public: B(void); ~B(void); }; #include "B.h" B::B(void) { } B::~B(void) { }
上面編譯不能經過,能夠經過前置聲明,而後在須要用到的類中定義該前置聲明的_指針或引用_, 而後在指針或引用實例化的地方包含前置聲明類的頭文件。 此外,前置聲明能夠減小頭文件的包含層次,減小出錯可能!指針
2.前置聲明在友元類方法中的應用code
若是在一個類A的聲明中將另外一個類B的成員函數聲明爲友元函數F,那麼類A必須事先知道類B的定義;類B的成員函數F聲明若是使用類A做爲形參,那麼也必須知道類A的定義,那麼兩個類就互相依賴了。要解決這個問題必須使用類的前置聲明。編譯