C++中類的前向聲明的用法


原創文章,未經博主允許禁止轉載。

C++的類可以進行前向聲明。但是,僅僅進行前向聲明而沒有定義的類是不完整的,這樣的類,只能用於定義指針、引用、以及用於函數形參的指針和引用。
而不能定義對象(因為此時編譯器只知道這是個類,還不知道這個類的大小有多大),也不能訪問類的對象,任何形式的訪問都不允許(因為此時根本不知道有些什么成員)。等到類正式定義以后,就可以以各種方式使用該類了。

//前向聲明此類
class Video;
//此時,只能定義指針和引用。不能定義對象,也不能以任何方式調用對象的成員
void fun1(Video* pv,Video& v1){}
//正式定義該類
class Video
{
public:
    void show();
};
//現在,這個類可以隨便使用了,可以定義對象,訪問成員
void fun2(Video* pv,Video& v1,Video v2){
    pv->show();
    v1.show();
    v2.show();
}
//類的實現,前面的只能讓編譯通過,實現類成員以后,連接也可以通過了。
void Video::show()
{
  cout<<"zhaojiankang"<<endl;
}

前向聲明的作用是:

1.不必在include頭文件了,相對會省點編譯時間。

2.方便的解決兩種類類型互相使用的問題。針對接口編程常常會遇到這種互相使用類型的場景。

原創文章,未經博主允許禁止轉載。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM