C 之全域性函式和成員函式互相轉換

2021-09-25 01:47:39 字數 2351 閱讀 2444

解析:成員函式會用this指標自動隱藏第乙個運算元(左運算元)

1、把全域性函式轉化成成員函式,通過this指標隱藏左運算元。

test add(test &t1,test &t2)     ==>    test add(test & t2);

2、把成員函式轉化成全域性函式,多了乙個引數

vpid printab()      ==>      void printab(test *pthis);

3、函式返回元素和返回引用

test &add(test &t2)//*this //函式返回引用

test add2(test &t2)//*this //函式返回元素

函式返回元素,例項**:?

#include

usingnamespacestd;

classtest

test testadd(test &t2)

test(inta=0,intb=0)

voidprintt()

}

//把成員函式 轉成 全域性函式 多了乙個引數

voidprintt(test *pt)

//全域性函式的方法

//全域性函式 轉成 成員函式 少了乙個引數

test testadd(test &t1,test &t2)

intmain()

return0;

}

函式返回引用,例項**:?

#include

usingnamespacestd;

classtest

//返回乙個引用,相當於返回自身

//返回t1這個元素,this就是&t1

test& testadd(test &t2)

test(inta=0,intb=0)

voidprintt()

}

//把成員函式 轉成 全域性函式 多了乙個引數

voidprintt(test *pt)

//全域性函式的方法

//全域性函式 轉成 成員函式 少了乙個引數

test testadd(test &t1,test &t2)

intmain()

全域性函式和成員函式

class test1 public test1 this,int a,int b 全域性函式形式 test1 int a 0,int b 0 this a a this b b public int a int b public 成員函式 test1 t add test1 t2 test1 t3...

c 成員函式和全域性函式的區分

include using namespace std 設計乙個立方體的類,求出立方體的面積和體積 分別用全域性函式和成員函式進行判斷兩個立方體是否相同 class cube 獲取長 intget l 設定寬 void set w int w 獲取寬 intget w 設定高 void set h ...

第四天之全域性函式和成員函式的轉換

1 把全域性函式轉化成成員函式,通過this指標隱藏左運算元 test add test t1,test t2 test add test t2 2 把成員函式轉換成全域性函式,多了乙個引數 void printab void printab test pthis include iostream ...