博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
C++ 面向对象 类成员函数this指针
阅读量:5144 次
发布时间:2019-06-13

本文共 1149 字,大约阅读时间需要 3 分钟。

每个类成员函数都只涉及一个对象, 即调用它的对象。 但有时候方法可能涉及到两个对象, 在这种情况下需要使用C++ 的 this 指针

 

假设将方法命名为topval(), 则函数调用stock1.topval()将访问stock1的对象数据;stock2.topval()将访问stock2的对象数据;

 

如果希望该方法的两个对象进行对比, 则必须将第二个对象作为参数传递给它。这时候涉及到隐式和显式:

 

top = stock1.topval(stock2);

 

隐式的访问了stock1, 显示的访问了stock2, this 则代表的是 stock1, *this 则是对象指针

 

// 轻松使用c++// 5. 面向对象 this指针, 面向对象的对象指针 完成#include 
#include
using namespace std;class Over {private:public: int h = 2;};class Stock {private: /* data */ int h;public: Stock(int abc); ~Stock(); int abc(); Stock &topval(Stock &s); Stock &topval1(Over &s);};Stock::Stock(int abc) { h = abc; printf("%d\n", h);}Stock::~Stock() {}int Stock::abc() { this->h = 10; printf("%d\n", this->h); printf("%d\n", h); return 0;}Stock &Stock::topval(Stock &s) { printf("this-h: %d, s2.h: %d\n", this->h, s.h);}Stock &Stock::topval1(Over &s) { printf("this-h: %d, s2.h: %d\n", this->h, s.h);}int main(int argc, char const *argv[]) { Stock s1(123); s1.abc(); Stock s2(222); s1.topval(s2); Over s3; s1.topval1(s3); return 0;}

 

转载于:https://www.cnblogs.com/renfanzi/p/9178637.html

你可能感兴趣的文章
每天CookBook之Python-003
查看>>
Android设置Gmail邮箱
查看>>
js编写时间选择框
查看>>
JIRA
查看>>
小技巧——直接在目录中输入cmd然后就打开cmd命令窗口
查看>>
深浅拷贝(十四)
查看>>
HDU 6370(并查集)
查看>>
BZOJ 1207(dp)
查看>>
PE知识复习之PE的导入表
查看>>
HDU 2076 夹角有多大(题目已修改,注意读题)
查看>>
洛谷P3676 小清新数据结构题(动态点分治)
查看>>
九校联考-DL24凉心模拟Day2T1 锻造(forging)
查看>>
Attributes.Add用途与用法
查看>>
L2-001 紧急救援 (dijkstra+dfs回溯路径)
查看>>
javascript 无限分类
查看>>
spring IOC装配Bean(注解方式)
查看>>
[面试算法题]有序列表删除节点-leetcode学习之旅(4)
查看>>
SpringBoot系列五:SpringBoot错误处理(数据验证、处理错误页、全局异常)
查看>>
kubernetes_book
查看>>
OpenFire 的安装和配置
查看>>