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;
// t3.a = t1.a + t2.a;
// t3.b = t1.b + t2.b;
// return t3;
//如果是這種,返回型別是test1
this->a = this->a + t2.a;
this->b = this->b + t2.b;
return *this;
//從成員函式轉化為全域性函式,
加確定物件的this
指標// test1(test1 *pthis, int a=0, int b=0)
// this->a = a;
// this->b = b;
//不好的寫法
test1 t_add(test1 &t1, test1 &t2)
test1 t3;
t3.a = t1.a + t2.a;
t3.b = t1.b + t2.b;
return t3;
//從成員函式轉化為全域性函式 只需要加乙個 this
指標(指向本類的類指標)
//從全域性函式轉化為類的成員函式是,需要減乙個做左運算元引數
void main()
test1 t1(1, 2), t2(3, 4);
test1 t3;
//t1 = t_add(t1 ,t2);
====>add(this, t2);
t1.t_add(t2);
system("pause");
全域性函式VS成員函式
1 include 2 3using namespace std 45 class test613 intgeta 1417 intgetb 1821 22 test add test t2 2328 void print 2933 protected 34 private 35 inta,b 36...
c 成員函式和全域性函式的區分
include using namespace std 設計乙個立方體的類,求出立方體的面積和體積 分別用全域性函式和成員函式進行判斷兩個立方體是否相同 class cube 獲取長 intget l 設定寬 void set w int w 獲取寬 intget w 設定高 void set h ...
C 之全域性函式和成員函式互相轉換
解析 成員函式會用this指標自動隱藏第乙個運算元 左運算元 1 把全域性函式轉化成成員函式,通過this指標隱藏左運算元。test add test t1,test t2 test add test t2 2 把成員函式轉化成全域性函式,多了乙個引數 vpid printab void print...