c語言是面向過程的,關注的是過程,分析出求解問題的步驟,通過步驟解決問題
c++物件導向,關注的是物件,將一件事情拆分成不同物件,靠物件之間的互動完成
類的定義
class classname
;
class為定義類的關鍵字,classname為類的名字,{}中為類的主體,類中的元素為類的成員,類中的資料為類的屬性,預設訪問私有
struct也能定義類,預設訪問共有
class a
//宣告加定義
//成員變數
private:
int a;
int b;
char c;
};int main()
//-------------------------------------------
class b
void b::fun() //類外面定義 要加作用域宣告符::
訪問限定符:public private protected
在類外可以直接訪問public!! 不能訪問private
定義的類不佔記憶體,定義類的物件佔記憶體
用類型別建立物件的過程,稱為類的例項化!!,例項化出來的物件,占用實際的物理空間,儲存類成員的變數。
封裝
將資料和運算元據的方法進行有機的結合,隱藏物件的屬性和實現細節,僅對外公開介面和物件進行互動。
this 指標
class data
void display()
{cout<<_year<<" "<<_month<this 指標
c++編譯器給每乙個「成員函式」增加了乙個隱藏的指標引數,讓該指標指向當前物件,在函式體中的所有成員變數的操作,都是通過該指標去訪問。即使用者不需要來傳遞,編譯器自動完成。
const int* p1; //const 修飾int,指向的空間可以變,指向的內容不能變
int* const p2;//const 修飾指標,指標指向空間不能變 指向的內容可以變
this指標的特性
1.this指標的型別:類型別*const
2.只能在「成員函式」的內部使用
3.this指標的本質實際是乙個成員函式的形參,是物件呼叫成員函式時,將物件位址作為實參傳遞給this形參。
4.this指標是成員函式第乙個隱含的指標形參,一般情況通過ecx暫存器自動傳遞,不需要使用者傳遞
5.this指標不能為空!!做解引用的相關操作this指標一定不能為空!! 不適用this指標可以為空
C 類與物件入門
總結在c 中 宣告 declaration 與 定義 definition 是比較重要的兩個概念,只有宣告沒有定義的類和函式是不可以使用的。宣告 只是告訴編譯器有這麼乙個東西存在,但是沒有給他分配記憶體。所以你即沒有給他分配記憶體,又去使用他,那麼就會報錯誤。變數是乙個比較特殊的存在。在linux中...
C 類和物件入門
物件的含義是指具體的某乙個事物,即在現實生活中能夠看得見摸得著的事物。在物件導向程式設計中,物件所指的是計算機系統中的某乙個成分。在物件導向程式設計中,物件包含兩個含義,其中乙個是資料,另外乙個是動作。物件則是資料和動作的結合體。物件不僅能夠進行操作,同時還能夠及時記錄下操作結果。這是什麼玩意,通俗...
C 類與物件
程式設計模型 所有計算機均由兩種元素組成 和資料.精確的說,有些程式是圍繞著 什麼正在發生 而編寫,有些則是圍繞 誰正在受影響 而編寫的.抽象封裝 封裝是一種把 和 所操作的資料 在一起,使這兩者不受外界干擾和誤用的機制.繼承 繼承是指乙個物件從另乙個物件中獲得屬性的過程.是物件導向程式設計的三大原...