C++前置聲明

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的定義,那麼兩個類就互相依賴了。要解決這個問題必須使用類的前置聲明。編譯

相關文章
相關標籤/搜索