類和物件(13) 全域性函式與成員函式

2022-08-12 10:39:27 字數 1564 閱讀 1459

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

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

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

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

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

案例一:實現兩個test相加

利用全域性函式實現兩個test相加

#include using

namespace

std;

class

test

void

printt()

intgeta()

intgetb()

private

:

inta;

intb;

};//

在全域性提供乙個兩個test相加的函式

test testadd(test &t1, test &t2)

int main(void

)

利用成員函式實現兩個test相加:

#include using

namespace

std;

class

test

void

printt()

intgeta()

intgetb()

//用成員方法實現兩個test相加,函式返回元素

test testadd(test &another)

private

:

inta;

intb;

};int main(void

)

案例二:實現test的+=操作

#include using

namespace

std;

class

test

void

printt()

intgeta()

intgetb()

//+=方法

void testaddequal(test &another)

private

:

inta;

intb;

};int main(void

)

案例三:連加等

#include using

namespace

std;

class

test

void

printt()

intgeta()

intgetb()

//如果想對乙個物件連續呼叫成員方法,每次都會改變物件本身,成員方法需要返回引用

test& testaddequal(test &another)//函式返回引用

private

:

inta;

intb;

};int main(void

)

全域性函式和成員函式

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...

全域性函式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...

類和物件(預設成員函式)

建構函式不是開空間建立物件,而是初始化物件,更嚴謹的說是賦初值 特性初始化列表 class date private int year int month int day explicit 析構函式不是完成對物件的銷毀,區域性物件銷毀由編譯器完成,而在物件銷毀時會呼叫析構函式,完成類的一些資源清理工...