C++ 36 之 this指针

#include <iostream>
#include <string.h>
using namespace std;

// this指针 永远指向当前对象
class Students06{
public:
    int age;
    // int m_age;  //member成员首字母m

    Students06(int age){
        // 1.解决命名冲突的问题 this指针找成员变量需要使用->符号
        this->age = age;
        // m_age = age;

    }

    bool com_age(Students06 &p){
        // this指针默认是加在每个成员函数中的
        if(this->age == p.age){
            return true;
        }
        else{
            return false;
        }
    }

    // 链式编程:允许将一个对象的成员函数调用的结果返回给另一个成员函数,从而可以在一行代码中执行多个操作。使得代码更简洁
    // 返回Students06类型的引用,才可以后续实现链式编程
    // 注意返回值类型 必须是对象的引用,如果是值的话,会复制构造函数,生成了副本,后续的链式编程,只会第一个生效,后面的都是针对新生成的副本在进行操作
    Students06& add_age(Students06 &stu){
        this->age += stu.age;
        return *this;   // *this是对象的本体
    }

};
int main()
{
    Students06 stu1(10);
    cout << "stu1的年龄" << stu1.age << endl;

    Students06 stu2(20);
    bool res = stu2.com_age(stu1);
    cout << "结果为: " << res << endl;
    
    stu2.add_age(stu1).add_age(stu1).add_age(stu1);
    cout << "stu2的age: " << stu2.age << endl;



    return 0;
}

 

this指针指向被调用的成员函数所属的对象。

c++规定,this指针是隐含在对象成员函数内的一种指针。当一个对象被创建后,它的每一个成员函数都含有一个系统自动生成的隐含指针this,用以保存这个对象的地址,也就是说虽然我们没有写上this指针,编译器在编译的时候也是会加上的。因此this也称为“指向本对象的指针”,this指针并不是对象的一部分,不会影响sizeof(对象)的结果。

   this指针是C++实现封装的一种机制,它将对象和该对象调用的成员函数连接在一起,在外部看来,每一个对象都拥有自己的函数成员。一般情况下,并不写this,而是让系统进行默认设置。

      this指针永远指向当前对象。

 

  1. 当形参和成员变量同名时,可用this指针来区分
  2. 在类的非静态成员函数中返回对象本身,可使用return *this.
  • 3
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值