全局函数和成员函数的this转换
2016-04-11 00:00
295 查看
这里的测试代码主要是帮助自己了解在类中的this指针。
使用的测试代码主要是:
使用的测试代码主要是:
1、使用全局函数实现对象的相加;
A global_add(A &a,A &b); 使用全局函数实现对象的相加,必须要在实参中传递两个对象,返回值是对象的类型。
2、使用成员函数实现对象的相加;
A& member_add(A &ab); 系统会解释为:A& member_add(A *pobj,A &ab); 即:会增加一个对象的地址参数。 使用成员函数实现两个对象的相加可省略一个参数。
3、测试代码:
#include <iostream> //using namespace std; class A{ public: //构造函数 A(int aa,int ba):a(aa),b(ba){} //setter函数 void setA(int a){this->a = a;} //getter函数 int getA(void){return a;} //setter函数 void setB(int b){this->b = b;} //getter函数 int getB(void){return b;} //成员测试函数 A& member_add(A &ab) { this->a = this->a+ab.getA(); this->b = this->b+ab.getB(); return *this; } //显示函数 void print() { std::cout << "a = " << getA() << std::endl; std::cout << "b = " << getB() << std::endl; } private: int a; int b; }; //全局测试函数 A global_add(A &a,A &b) { A temp = A(a.getA()+b.getA(),a.getB()+b.getB()); return temp; } int main(void) { A a(1,2); A b(3,4); //A temp = global_add(a,b); a.member_add(b); a.print(); b.member_add(a); b.print(); return 0; }
相关文章推荐
- java 判断 double 数字 是否是整数
- Android xml资源文件中@、@android:type、@*、?、@+含义和区别
- python 编译文件
- django数据库事务使用记录
- 前端面试题(HTML篇)
- HTTP返回码总结
- Git常用命令记录
- Git忽略文件配置
- Java编译的jdk与安装的jdk版本不一致
- 天嵌科技:约“惠”春天,提“嵌”high购
- Tomcat 端口变更失效的问题的解决经历
- 拦截器使用及其作用
- 异常处理
- 线程相关
- TCP通讯小案例聊天室(Server和Client)
- 聊天室
- 将checkbox的value,拼成字符串
- <input type="file" />浏览时只显示指定文件类型
- Java方法的重载
- Android入门之创建一个AndroidStudio工程