C 之類的學習心得

2021-08-19 00:09:30 字數 3209 閱讀 9506

近來學習了c++最有特點的部分——類。

類相比於c語言的結構體來說,優點就是類具有許可權的分別,公有,私有,保護

。公有:一般行為函式許可權為公有,可在類外被呼叫。

私有:無法在類外訪問,一般存放資料成員。

保護:繼承中有應用。

類的特點:封裝性、繼承性、多型性。

類的優點:更好更

高效的組織資料。

我們定義類一般分為兩種:

資料類、

操作類。 

資料類:描述

資訊的類(資料),一般包含

get函式

、set函式

、建構函式

、display函式

。操作類:描述

操作的類(操作),一般在管理系統中實現

增、刪、查、改

的功能。

一般定義格式

class a

public:

protected:

private:                               //預設類成員訪問許可權私有

//資料成員在定義中不初始化

};                                       //一定要加分號,我也是經常忘....

返回值  類名::成員函式(參數列){};                       //成員函式定義,類名限定,成員不能是自身(不能遞迴呼叫)

int main()

類名  物件名;

物件名.公有成員;                                            //圓點呼叫

物件指標->公有成員;                                     //指標呼叫

內聯函式

inline  函式名();         //這樣的函式呼叫快,適用於小函式常用的,實際上這樣函式常駐記憶體,已經用的比較少了

建構函式

建立物件時,系統自動呼叫的函式。

特點:無返回值型別,與類名相同,可過載。

class date                                //一般規則,類名大寫

public:

date();

建構函式初始化列表

date(int dd,int mm,int yy):d(dd),m(mm),y(yy){};                       //順序與私有成員的定義順序一致

一般必須使用的情況:

1.資料成員為常量  const

2.資料成員為引用型別  &

3.資料成員是沒有無參建構函式的類的物件

建構函式的過載

class box;

;box::box()

box::box(int h,int w,int l):height(h),width(w),length(l){};                        //注意過載的時候可能會出現二義性

複製建構函式

用已有物件建立新物件。

類名::類名(const 類名& 引用名);

一般呼叫

class box

{};int main()

說到複製建構函式,就有深複製和淺複製的問題了

淺複製:對於簡單型別比較好用,當p2物件複製p1物件的時候,p1刪除,p1中的指標指向的位址內容刪除,p2中的指標複製的

位址與p1相同,所以p2指向的位址變為空。(其實就是p1、p2中的指標指向了同乙個空間)

深複製:對於複雜變數比較好用,一般用new申請空間,複製時將資源一併複製 。

this指標

為自動分配的指標,指向物件。

使用情況:

1.變數與引數同名(起不出名了.....)

2.返回物件本身

3.避免對同一物件操作

比如說學生資訊管理系統 

setname(string name)

同名變數,生存空間小的變數,優先

析構函式

物件生存結束時,釋放成員所佔空間,自動呼叫。

特點:無返回值,無引數,不能過載,自動呼叫。

~類名()

//一般析構函式中delet釋放動態申請的空間,清理記憶體空間。

其他型別成員

常成員

唯讀不寫

const  關鍵字            

const int a;                  //常資料成員只能用初始化列表初始化

void  print() const;      //常成員函式只能讀,不能寫。

靜態成員

分配空間後始終存在

好處:省空間,操作統一

static 關鍵字

class counter

void  shonnum();int counter::num=0;                               //靜態成員初始化辦法.

友元函式

一般用於運算子過載,破壞了類的封裝性,不建議使用。

程式開發步驟(括號內為個人解讀)

1.功能(程式要幹嘛)

2.分類彙總(增刪查改)

3.設計類(想想操作類有啥功能)

4.設計資料類(根據功能想想要有啥資料)

5.整合

6.除錯(非常重要)

一般來說除錯先除錯資料類,資料類為基礎

資料類調好後 ,再除錯操作類,操作類中先除錯最需要的功能,然後再陸續增加功能,測試的時候多用幾組樣例,一定要每個函式都調。

一般採取滾雪球式調法,寫乙個,調乙個,從基礎調起,雪球越滾越大。

總結

類是c++程式最具特色的部分,也是c++程式與c的重要區別,還是c++的基礎,特點也是非常明顯的,封裝性。類也是程式後期開發的基礎,簡單的說開發程式就像是搭積木,要一塊一塊的搭建,一部分一部分的增加,才能搭建出乙個良好的程式。好的程式也要可以隨時隨地增加功能,減少功能,這也就要求類的定義詳細,可讀性強,我們想要寫出好的程式,就要養成良好的習慣,從現在開始養成良好的程式設計習慣也是非常重要的。

C 學習心得

c 學習心得 c 是最難的語言 這個世界上最難的程式語言可能非 c 莫屬了。你千萬 不要以為 幾天就可以學好 c c 的學習曲線是相當 bt的,你可以看看 這篇文章 c 是一門很自由的語言,自由到了有點 bt和恐怖的地步 我甚至 認為c 並不是一門成熟的程式語言,因為太容易犯錯了。所以,你一定要在 ...

c 學習心得

1.typedef struct 結構體型別 c 提供了許多種基本的 資料型別 如int float double char等 供使用者使用。但是由於程式需要處理的問題往往比較複雜,而且呈多樣化,已有的 資料型別 顯得不能滿足使用要求。因此c 允許使用者根據需要自己宣告一些型別,使用者可以自己宣告的...

C 學習心得

我是乙個轉專業到計算機行業的,系統學習c 大概有兩年了,其中走了很多彎路,也陷入很多次迷茫,最近有一些新的感受,所以想總結下來,我所認為的學習一門語言所需要經歷的階段。當你覺得已經掌握大部分的語法知識後 60 以上 可以去看一些簡單專案的源 一方面學習別人解決問題的方式,另一方面是加深語法知識的印象...