類和物件 匯入篇

2021-10-23 09:16:32 字數 3184 閱讀 1665

2、深入理解物件導向

3、用類和物件的思想實現乙個單鏈表

在我們之前對c的學習過程中都是使用的面向過程的程式設計思想,仔細回憶一下我們面向過程的思維方式,我們的關注點在於問題解決的流程,重在這個過程的控制需要使用大量的函式,將大問題拆分開來。我們主要通過控制模組的執行順序來解決問題。這樣做的優點就是直接有效

不足之處

當我們要構建乙個航空母艦模型的時候,面向過程的思想顯然是不夠的,在處理大規模問題上會出現問題。

以現實世界我們所接觸到的實體出發來進行詳細描述。

【舉個栗子】

例如對於杯子這個現實中的事物,往往都有屬性和行為這兩種概念,杯子的屬性就是他的顏色、形狀、大小、材質等等,杯子的行為就是盛水。這都是我們將杯子這個實體抽象出來的資料型別。

對應在計算機的世界裡面,資料型別的屬性和行為就是類中的成員變數和成員方法,類是一組相關屬性和行為的集合。我們再將這個類進行例項化就成了物件。下面是類和物件的關係圖

物件和成員變數是獨享的,屬性和物件也是獨享的

成員方法和物件是共享的

可支援的:c是面向過程的語言,c++是物件導向的語言。因此c++語言中有類和物件以及繼承這樣的物件導向語言必備的內容。c++支援模板、運算子過載、異常處理機制、c++標準模板庫stl還支援非常強大的設計模式

c只能寫面向過程的**,而c++既可以寫面向過程也可以寫物件導向的**。

動態記憶體管理上:c語言通過malloc和free來進行堆記憶體的分配和釋放。c++通過new和delete來管理記憶體。

強制轉換型別上:c的強制型別轉換使用(小括號裡面加型別進行型別強轉)而c++有四種自己的型別強轉方式,分別是const_cast,static_cast,reinterpret_cast和dynamic_cast.

輸出方式不同:c使用的是print/sacnf,這是庫函式,c++使用的是cout/cin是ostream和istream型別的物件

c++還支援帶有預設值的函式,函式的過載,inline內聯函式。而這些c語言不支援

c++不僅僅支援指標,還支援更加安全的引用

在c++中,struct關鍵字不僅可以用來定義結構體還可以用來定義類

1、訪問限定符的分類

public 修飾的成員在類外可以直接被訪問

protacted和private修飾的成員在類外不能被直接訪問

2、封裝的思想

將資料和運算元據的方法進行有機結合,隱藏物件的屬性和實現細節,僅對外公開介面來和物件進行互動。

首先c++中對struct的功能進行了很多的擴充,他可以有自己的成員函式、建構函式,也可以實現繼承、多型,class可以繼承struct,struct可以繼承class。

他們的區別有三點

預設的成員變數訪問許可權:struct對資料成員訪問許可權預設是public的,class預設是private的

預設的繼承訪問許可權:struct對資料成員訪問許可權預設是public的,class預設是private的

class可以定義模板引數,與typename類似,但是struct不可以。

具體的參見博文class和struct的區別

1、this指標的原理

首先我們還是以乙個具體的栗子來加以分析,給出乙個類如下:

class test

;node::

node

(int data)

class

clink

;clink::

~clink()

phead =

null;}

void clink::

inserthead

(int val)

void clink::

inserttail

(int val)

ptail-

>pnext = pnewnode;

}bool clink::

empty()

bool clink::

deletehead()

node* pfirst = phead-

>pnext;

phead-

>pnext = pfirst-

>pnext;

delete pfirst;

return

true;}

bool clink::

deletetail()

node* ptail2 = phead;

node* ptail1 = ptail2-

>pnext;

while

(ptail1-

>pnext !=

null

) ptail2-

>pnext =

null

;delete ptail1;

return

true;}

void clink::

show()

std::cout << std::endl;

}int

main()

cl.show()

;for

(int i =

0; i <

5; i++

) cl.

show()

; cl.

deletehead()

; cl.

show()

; cl.

deletetail()

; cl.

show()

;return0;

}

(基礎篇)類和物件

類的真正意義就是在描述事物。屬性和功能統稱為事物中的成員。事物的成員分為兩種 成員屬性和成員功能。成員屬性在 中的體現就是成員變數 成員功能在 中的體現就是成員方法 類是用於描述事物的,類中可以定義事物的屬性和行為。而物件是通過描述的這個類,使用new關鍵字建立出來,通過物件就可以呼叫該物件具體的屬...

Py基礎篇 類和物件

眾所周知,類和物件是物件導向的重要內容,我希望大家看完之後能有所收穫。那麼類是個什麼東西呢?其實可以把類當成乙個自定義的型別,或者變數。也可以用來創造物件。定義類的三種格式 class 類名 pass 暫時先不寫,又不想報錯,就可以用pass替代 class 類名 pass class 類名 obj...

學習篇 C 類和物件 封裝

4.封裝案例2 點和圓的關係 將屬性和行為作為乙個整體,表現生活中的事物 將屬性和行為加以許可權控制意義一 語法class 類名 意義二 類在設計時,可以把屬性和行為放在不同的許可權下,加以控制 三種訪問許可權 許可權名稱 類內 類外訪問情況 繼承訪問情況 public 公共許可權 成員 類內可以訪...