日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > c/c++ >内容正文

c/c++

C++之全局函数和成员函数的转换

發布時間:2023/12/19 c/c++ 27 豆豆
生活随笔 收集整理的這篇文章主要介紹了 C++之全局函数和成员函数的转换 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

全局函數和成員函數

  • 把全局函數轉化成成員函數,通過this指針隱藏左操作數
Test add(Test &t1, Test &t2)===》Test add(Test &t2)
  • 把成員函數轉換成全局函數,多了一個參數
void printAB()===》void printAB(Test *pthis)
  • 函數返回元素和返回引用
Test& add(Test &t2) //*this //函數返回引用{this->a = this->a + t2.getA();this->b = this->b + t2.getB();return *this; //*操作讓this指針回到元素狀態} Test add2(Test &t2) //*this //函數返回元素{//t3是局部變量Test t3(this->a+t2.getA(), this->b + t2.getB()) ;return t3;}

重要函數展示:

#include <stdio.h>class Test1_1 { public:Test1_1 (int a){this->a = a;}void print(){printf ("a = %d\n", a);}// 將全局函數改成內部函數可以通過 this 隱藏左操作數int add(Test1_1 &b) //===> add(Test1_1 *const this, Test1_1 &b){return this->a+b.GetA();}int GetA(){return a;} private:int a; };int GetA(Test1_1 &obj) {return obj.GetA(); }// 全局函數 int add(Test1_1 &a, Test1_1 &b) {return a.GetA()+b.GetA(); }int main1_1() {Test1_1 a(10), b(20);// int c = add(a, b);int c = a.add(b); // a+b b.add(a) ===> b+aprintf ("c = %d\n",c);return 0; } 創作挑戰賽新人創作獎勵來咯,堅持創作打卡瓜分現金大獎

總結

以上是生活随笔為你收集整理的C++之全局函数和成员函数的转换的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。