c 學習筆記(7)

2021-10-05 12:46:51 字數 2377 閱讀 5531

設計立方體類

求出立方體面積和體積

分別用全域性函式和成員函式判斷兩個立方體是否相等

class

cube

intgetl()

void

setw

(int ml)

intgetw()

void

seth

(int ml)

intgeth()

intcalcultes()

intcalculatev()

//成員函式 只需要乙個輸入 因為呼叫時輸入了乙個資料

bool

issame1

(cube &c)

}cube c1;

c1.setl(10

);c1.setw(10

);c1.seth(10

);s = c1.

calculates()

;v = c1.

calculatev()

;cube c2;

c2.setl(10

);c2.setw(10

);c2.seth(10

);//全域性函式

bool

issame

(cube &c1,cube &c2)

return

false;}

ret =

issame

(c1,c2)

;ret = c1.

issame1

(c2)

;

點和圓的關係

設計乙個圓類,設計乙個點類,計算點和圓的關係

class

point

class

circle

}void

iscircle

(circle &c,point &p)

}point p;

circle c;

iscircle

(c,p)

;

類的封裝

#include

using

namespace std;

//只加入宣告

//函式的宣告以及變數的宣告

#include

"point.h"

//加入函式的實現,需要加入作用域

void point::

sety

(int y)

//使用時只需要加入.h標頭檔案

物件的初始化和清理

每個物件都有初始設定以及物件銷毀前的清理資料的設定

建構函式和析構函式

物件的初始化和清理是兩個非常重要的安全問題

c++利用建構函式和折構函式解決上述問題,這兩個函式將會被編譯器自動呼叫,完成物件初始化和清理工作,物件的初始化和清理工作是編譯器強制我們做的事情,因此我們如果不提供構造和析構,編譯器會提供

編譯器提供的建構函式和析構函式是空實現

建構函式:主要作用於建立最想時為獨享的成員屬性賦值,建構函式由編譯器自動呼叫,無需手動呼叫

析構函式:主要作用於物件銷毀前系統自動嗲用,執行一些清理工作

建構函式語法:類名(){}

1.建構函式,沒有返回值也不寫void

2.函式名稱與類名相同

3.建構函式可以有引數,因此可以發生過載

4.程式在呼叫物件時會自動呼叫構造,無須手動呼叫,而且只會呼叫一次

析構函式語法:~類名(){}

1.析構函式,沒有返回值也不寫void

2.函式名稱與類名相同,在名稱前加上符號~

3.析構函式不可以有引數,因此不可以發生過載

4.程式在物件銷毀前會自動呼叫析構,無須手動呼叫而且只會呼叫一次

class

person

//析構函式

~person()

}person p;

//例項化時會自動呼叫建構函式,只呼叫一次

void

test()

test()

;//執行時會自動呼叫構造和析構,因為區域性變數執行完後自動釋放,刪除前呼叫了析構函式

建構函式的分類和呼叫

兩種分類方式

按引數分為:有參構造和無參構造

按型別分為:普通構造和拷貝構造

三種呼叫方式:

括號法顯示法

隱式轉換法

class

person

//有參構造

person

(int a)

//拷貝建構函式

person

(const person &p)

}void

test()

C 學習筆記(7)

子類可以自動共享父類的資料結構和方法的機制,單繼承 子類只繼承以父類的資料結構和方法。多繼承 子類可以繼承多個父類的資料結構和方法 需小心二義性 不同類物件呼叫相同的方法可以產生不同的結果 class class name permission lable 許可權識別符號,可以是public pri...

C 學習筆記7

目錄 1 聯編的概念 2 靜態聯編 3 動態聯編 4 虛函式 5 虛析構函式 6 純虛函式和抽象類 1 聯編的概念 聯編是指乙個電腦程式自身彼此關聯 使乙個源程式經過編譯 連線,成為乙個可執行程式 的過程,在這個聯編過程中,需要確定程式中的操作呼叫 函式呼叫 與執行該操作 函式 的 段之間的對映關係...

c 學習筆記7

七 c 語言整合開發環境和程式除錯 程式開發的一般過程 c 的開發工具 editor compiler linker 編輯器 編譯器和聯結器 ide integrated developing environment,整合開發環境 microsoft visual c 2010 express mi...