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 公共許可權 成員 類內可以訪...