類與物件筆記4 2

2021-10-04 17:45:57 字數 3101 閱讀 9494

內聯函式優點:

內聯函式不在發生呼叫時轉移

只是將函式體嵌入到每乙個呼叫語句處,這樣就節省了引數傳遞,控制轉移等開銷

內聯函式缺點:

雖然執行效率提高,但是可執行規模變大,實際應用中要權衡效率和規模之間的關係!

inline限定符應該適用於經常使用的小函式設定內聯函式的方法:

在類定義體內實現的成員函式 顯式使用關鍵字

inline指定定義在類定義體外的成員函式

關鍵字inline必須與函式定義體放在一起才能使函式成為內聯,僅將inline放在函式宣告前面沒有作用。

//方法一

class

a// 自動地成為內聯函式};

//方法二

classa;

inline

void a::

foo(

int x,

int y)

在成員函式中可以通過作用域運算子(::)來訪問被隱藏的資料成員

//單目作用域運算子的用法  

#include

using

namespace std;

int value =1;

intmain()

//執行結果:value(local)=5

// value (global)=1

1. 一般物件的成員表示:

·是成員運算子,該運算子的功能是表示物件的成員。

或者

2. 指向物件的指標的成員表示:

*是指向運算子

它與·運算子的區別:

→用來表示指向物件的指標的成員,而·用來表示一般物件的成員。

1.

函式呼叫時,編譯器按從左至右的順序將實參與形參結合,當實參的數目不足時,編譯器將按同樣的順序用說明中或定義中的預設值來補足所缺少的實參。

#include

using

namespace std;

void fun (

int a=1,

int b=3,

int c=5)

intmain()

使用預設引數可簡化函式呼叫的編寫。

常見的程式設計錯誤是指定並使用預設引數不是最右邊的引數(即沒有把它右邊的引數同時指定預設引數)。

函式可宣告為(從右到左預設):

voidf0(

float x,

int y,

char z)

;voidf1(

float x,

int y,

char z=`b`)

;voidf2(

float x,

int y=4,

char z=`b`)

;voidf3(

float x=1,

int y=4,

char z=`b`)

;呼叫時(從右到左補充) :

float a=

2.1;

int b=5;

char c=`c`;

f3(a, b, c)

;//三引數值為:a, b, c

f3(a,b)

;//三引數值為:a, b, `b`f3(

);//三引數值為:1, 4, `b`

f1(a,b)

;//三引數值為:a, b, `b`

f0(a,b,c)

;//三引數值為:a, b, c

//錯誤

f0(a,b);f1

(a);f2(

);

在乙個程式塊中,所定義的變數有作用域限定,當變數超出其作用域時,系統將自動釋放為該變數分配的記憶體空間。

類似地,在乙個程式塊中,所定義的物件也有作用域限定,當物件超出其作用域時,系統將隱式呼叫類的析構函式。

析構函式的特點:

析構函式也是成員函式,函式體可寫在類體內,也可以寫在類體外。

析構函式也是成員函式,函式體可寫在類體內,也可以寫在類體外.

乙個類中只可能定義乙個析構函式,不能過載。

如果使用者沒有編寫析構函式,編譯系統會自動生成乙個預設的「空的」析構函式.

何時呼叫建構函式與析構函式

1.建構函式與析構函式是自動隱式呼叫的。

2.函式的呼叫順序取決於執行過程進入和離開例項化物件範圍的順序。

3.析構函式的呼叫順序與建構函式 相反。

4.物件儲存類可以改變析構函式的呼叫順序。

析構函式用法:

建構函式與析構函式呼叫時間

#include

using

namespace std;

classa;

a::a()

// 建構函式

a::~a(

)//析構函式

void a::c(

)int

main()

//從這裡不再是a的作用域,自動呼叫析構函式

return0;

}//執行結果:2

// done

Python 類與物件筆記

類與物件 python 類的語法 關鍵字class def函式名 引數 函式關鍵字 class 類名 類名的規範是數字字母下劃線 不能以數字開頭 首字母大寫 駝峰命名 類屬性類方法 class boyfriend 類屬性 height 175 weight 130 money 500萬 類函式 類方...

C 類與物件 複習筆記

類與物件 類是物件的抽象,而物件是類的具體例項 類是抽象的,不占用記憶體,而物件是具體的,占用儲存空間 面向過程與物件導向 c語言是面向過程的,關注的是過程中的資料與方法 c 是物件導向的,關注的是物件的屬性與功能 類的定義 類的成員函式預設是內聯的。除了類外定義且不加inline關鍵字。類的兩種定...

Python學習筆記 類與物件

基於python3版本的學習。生活中我們所說的類,是物以類聚的類,是分門別類的類,是多個類似事物組成的群體的統稱。而在python中我們所遇到的類 class 比如整數 字串 浮點數等,不同的資料型別就屬於不同的類。準確來說,它們的全名是整數類 字串類 浮點數類。每乙個類之下都包含無數相似的不同個例...