100字范文,内容丰富有趣,生活中的好帮手!
100字范文 > C++学习之全局函数和成员函数

C++学习之全局函数和成员函数

时间:2021-10-04 11:03:22

相关推荐

C++学习之全局函数和成员函数

1.把全局函数转化成成员函数

少了一个参数
通过this指针隐藏左操作数Test add(Test &t1, Test &t2)===》Test add(Test &t2)

2.把成员函数转换成全局函数

多了一个参数
void printAB()===》void printAB(Test *pthis)

3.函数返回元素和返回引用

案例:实现 t1 = t1 + t2

class Test{public:Test(int a = 0, b = 0){this->a = a;this->b = b;}public://成员函数方法Test TestAdd(Test & t2)//函数返回元素{Test tmp(this->a + t2.a, this->b + t2.b);return tmp;}//t1.TestAdd2(t2);//返回一个引用 相当于返回自身//返回t1这个元素,所以this就是 &t1TestClass & TestAdd2(TestClass &t2) //*this 函数返回引用{this->a = this->a + t2.a;this->b = this->b + t2.b;return *this; //把 *(&t1) 又回到了t1元素// *操作让this指针 回到元素状态}public:void printT(){cout << "a:" << a << " b:" << b << endl;}public:int a, b;}//成员函数转成 全局函数 多了一个参数void printT(TestClass *pT){cout << "a:" << pT->a << " b:" << pT->b << endl;}//全局函数的方法实现 t1+t2//全局函数 转成 成员函数 少了一个参数Test TestAdd(Test &t1, Test &t2){Test tmp;return tmp;}void main(){Test t1(1,2);Test t2(3,4);//t1+t2//全局函数方法Test t3;t3 = TestAdd(t1,t2);//成员函数方法{//先把测试案例写出来TestClass t4 = t1.TestAdd(t2); //匿名对象(t1+t2)直接转化成t4 t4.printT();TestClass t5;t5 = t1.TestAdd(t2); //匿名对象 赋值给t5t5.printT();}system("pause");/*a:0 b:0 析构函数a:0 b:0 析构函数a:4 b:6 析构函数a:4 b:6a:4 b:6 析构函数a:4 b:6 析构函数a:4 b:6a:4 b:6 析构函数a:4 b:6 析构函数请按任意键继续. . .*/}//返回引用void main03(){TestClass t1(1, 2);TestClass t2(3, 4);//t1 = t1 + t2t1.TestAdd2(t2);t1.printT();system("pause");/*a:4 b:6请按任意键继续. . .*/}

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。