012 將類作為引數傳入函式來修改函式方法

2021-09-23 14:17:25 字數 1750 閱讀 4050

將類作為引數傳入函式來修改 (新增、覆蓋) 類函式。

若將乙個類作為引數傳入乙個函式,並在該函式中為該類新增乙個函式,並且該函式與該類下的某個函式同名,則新新增的函式將覆蓋原類中同名函式。

# 將類 couter1 作為引數傳入 middlefunc() 函式

midd.py

from test.cinner import load_innerfunc

defmiddlefunc

(obj)

: load_innerfunc(obj)

cinner.py

def

load_innerfunc

(obj)

: obj.testone = testone # 覆蓋 couter1 類中的 testone() 函式

obj.testha = testha # 為 couter1 新增 testha() 函式

deftestone()

:print

('innerfunc testone...'

)def

testha()

:print

('innerfunc testha...'

)

test.py

from test.couter import couter1

if __name__ ==

'__main__'

: c = couter1(

)# c.testone() # 呼叫原類中被覆蓋方法,報錯,已被覆蓋

couter1.testone(

)# 呼叫被覆蓋方法

couter1.testha(

)# 呼叫新增方法

# couter1.nice() # 報錯,不能直接通過類名呼叫

c.nice(

)

列印結果:

couter1init

--------------11

innerfunc testone…

--------------22

innerfunc testha…

--------------33

couter1 nice…

將引用作為函式引數

1 void swapr int a,int b 這裡的temp是已經定義的變數,也就是我們說的引用,在上面的函式中,首先定義了乙個函式,上面先定義,再按值傳遞,但是c 中是不可以的。只有指標傳遞,引用傳遞。指標傳遞 viod swapv int p,int q 引用傳遞 void swapr in...

將引用作為函式引數

1 void swapr int a,int b 這裡的temp是已經定義的變數,也就是我們說的引用,在上面的函式中,首先定義了乙個函式,上面先定義,再按值傳遞,但是c 中是不可以的。只有指標傳遞,引用傳遞。指標傳遞 viod swapv int p,int q 引用傳遞 void swapr in...

類物件作為函式引數

網上看見一段 是關於類物件作為函式的引數,其中有幾點知識,貼出來大家一起學習。直接來看 include include using namespace std class people people people char namestr,int i people people char peopl...