【c++】this指针

一、this的一般使用场景。

当我们在类的成员函数中调用类的成员变量时,可以直接使用变量名,但当成员函数内定义了一个与成员变量的变量名相同的变量时,由于作用域的优先级,将无法直接用函数名调用,这时我们就可以用到this指针。

class a {
public:
    int Init(int year){

     this->year = year;

    }
private:
    int year;
};

二、this指针的特点

1、this指针只能在成员函数中使用

成员函数默认第一个参数为T* const register this(this指针本身不可被修改
(友元函数,全局函数不是成员函数)

如果此函数不会改变成员变量可以在成员函数声明的后方加上一个const,使this指针调用的变量无法被修改。

public:

    int get() const

    {

    return this->year;(可以调用,不能修改)

    }

2、this指针不能再静态函数中使用

静态函数如同静态变量一样,他不属于具体的哪一个对象(所有对象共享),而this指针却实实在在的对应一个对象,所以this指针不能被静态函数使用。

3、this指针只有在成员函数中才有定义

离开成员函数之后this指针本身被销毁了。

三、关于this指针的一个精典回答:

当你进入一个房子后,
你可以看见桌子、椅子、地板等,
但是房子你是看不到全貌了。
对于一个类的实例来说,
你可以看到它的成员函数、成员变量,
但是实例本身呢?
this是一个指针,
它时时刻刻指向你这个实例本身。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值