c 基礎學習第三天

2021-10-06 15:06:47 字數 2577 閱讀 6456

##對第二天所學內容深入

#工具vs2005

ps:再對面向過程程式設計和物件導向程式設計進行解釋。

例如:八戒吃西瓜

1、八戒.吃(西瓜)//物件導向,第一位是物件

2、吃(八戒,西瓜)//面向過程,第一位是函式(吃這個動作即是函式來實現的)

原有**存在的一些問題:當我們建立物件後,物件就應該具有相應的屬性,而不是在後續通過set函式對他進行賦值。

解決問題的方法是:用建構函式和析構函式

1、通過建構函式來完成物件的建立和初始化

2、通過析構函式來完成物件的銷毀

ps:建構函式和析構函式是系統自動呼叫的,如果不提供建構函式和析構函式,編譯器會提供建構函式和析構函式,編譯器提供的兩個函式是空的。如果提供了任意形式的建構函式,那麼編譯器將不再提供建構函式。

建構函式的分類:1、有參建構函式 2、無參建構函式

建構函式語法:

類名([形參列表])

注意:1、建構函式沒有返回值,也不能寫void

2、建構函式的函式名和類名一致

3、建構函式可以過載

4、建構函式在建立物件時會被呼叫一次

#include

using

namespace std;

//使用命名空間

class

person

person

(int a)

};void

main()

析構函式的語法: 函式體;

#include

using

namespace std;

//使用命名空間

class

person

~person()

//析構函式

};void

func()

void

main()

/*執行結果順序是

呼叫析構函式

呼叫無參建構函式

main()*/

拷貝建構函式:是一種t特殊的建構函式,用一種物件來初始化另乙個物件。

呼叫時機:當使用一種物件來初始化另乙個物件;將物件作為實參傳遞給函式形參;函式如果返回物件,通過拷貝建構函式傳遞給呼叫者。

語法:類名(const 類名&變數名)

#include

using

namespace std;

//使用命名空間

class

person

person

(const person&p)

};void

main()

/*執行結果順序是

呼叫拷貝建構函式

*/

深拷貝與淺拷貝:

淺拷貝:只是簡單的賦值拷貝,對於普通變數沒有問題,對於指標變數,如果只進行簡單賦值就會造成兩個變數指向同一塊記憶體,當執行析構函式時就會產生記憶體被重複釋放的錯誤!

深拷貝:在堆區重新申請了空間,再進行拷貝操作

#include

using

namespace std;

//使用命名空間

class

person

//建立有參建構函式,將成員變數用傳進來的引數進行初始化

person

(int age,

int height)

person

(const person&p)

~person()

public

:int m_age;

int*m_height;

};void

func()

void main (

)

設計乙個立方體類:計算立方體的面積和體積,要使用建構函式來進行初始化,能夠比較兩個立方體的提及大小。
#include

using

namespace std;

//使用命名空間

class

cube

cube

(double l,

double w,

double h)

cube

(const cube&c)

~cube()

public

:double

getmj()

double

gettj()

public

:double c_long;

double c_wide;

double c_heighjt;};

intcmpcube

(cube c1,cube c2)

else

if(c1.

gettj()

gettj()

)return0;

}void

main()

小結:學習了用建構函式和析構函式來建立和初始化物件,加強對**的編寫能力。

C 學習第三天

一些基礎就可以略過了,看書不能太呆板。如果把一本書看完了,剩下的就是在實際專案中進行整合,訓練,然後整理成筆記。每天敲點程式,記點筆記。變數作用域 include include include std string s1 hello 全域性int main 結果 hello world 42 wo...

第三天 c 學習

1 void my function const a 常引用 目的是為了使得實參不可以被修改 2 函式過載 函式引數預定義值會產生二義性 3 public 類的內外部都可以被訪問 porivate 只能在類的內部被訪問 protected 用在類的內部 繼承 4 析構 先建立的物件後析構,遵循堆疊原...

C 學習第三天

今天是學習的第三天,主要學習內容如下 1.c 字符集 2.識別符號構成規則 3.c 資料型別 4.轉義字元 5.符號常量 6.基本算數運算子 7.符合算數運算子 寫 抄 了個程式 include 讓程式包含iostream類 using namespace std 開啟命名空間,使用iostream...