一、類的聲明和類的定義的區別 類的聲明: class Screen; 沒有定義類就不能定義該類的對象,因為類類型的大小不知道,但是可以聲明指向該類類型的指針或引用 只有看到了一個類的定義,才能把一個數據成員聲明成該類的對象。如果沒有該類的定義,數據成員只能是該類的指針或引用 一個類不能有自身類型的數據成員,但是,但一個類頭被看到時,它就相當于已經聲明過了,所以一個類可以用指向自身類型的指針或引用作為數據成員 二、對象的定義 先定義類類型,然后再定義對象 class 類名 對象名,如class Student stud1,stud2; 類名 對象名,如 Student stud1,stud2; //常用 在定義類類型的同時定義對象,在小型程序或所聲明的類只用于本程序可以用此種方法 不出現類名直接定義對象 三、成員函數的存儲方式 類的定義,不會引起內存分配;用類去定義一個對象時系統會為每一個對象分配存儲空間 每個對象所占用的空間只是該對象的數據部分所占用的存儲空間,所有對象的成員函數對應同一個函數代碼段 雖然調用不同對象的成員函數時都是執行的同一段函數代碼,但是執行結果是不同的 不同對象使用同一段函數代碼,靠this指針對不同對象中的數據進行操作 不論成員函數是在類內還是在類外定義,成員函數代碼的存儲方式相同 不要將成員函數的存儲方式和inline函數的概念混淆 四、類的聲明和類的定義的區別 類的聲明: class Screen; 沒有定義類就不能定義該類的對象,因為類類型的大小不知道,但是可以聲明指向該類類型的指針或引用 只有看到了一個類的定義,才能把一個數據成員聲明成該類的對象。如果沒有該類的定義,數據成員只能是該類的指針或引用 一個類不能有自身類型的數據成員,但是,但一個類頭被看到時,它就相當于已經聲明過了,所以一個類可以用指向自身類型的指針或引用作為數據成員
新聞熱點
疑難解答
圖片精選