总结9:this 指针


本文PDF下载站点: https://github.com/MrWang522/Private-Document.git


1. 基本用法

C++类对象中 成员变量 成员函数 是分开存储的 :

  • 普通成员变量:存储于对象中,与 struct 变量有相同的内存布局和字节对齐方式
  • 静态成员变量:存储于全局数据区中
  • 成员函数 :存储于代码段中
  • C++中类的 普通成员函数 都隐式包含一个指向当前对象的this指针, 而 静态函数 没有 !!!
class Person{
public:
    Person():age(25){}
    ~Person(){}
    int get_age() const{	// 编译器为我们自动转为: get_age(const Person* const pThis) 
        return this->age; 
    }
    
private:
    int age;
};

void function(){
    Person p; 
    cout << p.get_age() << endl;	// 编译器为我们自动转为 p.get_age(&p)
}

2. const 修饰类的成员函数

  • const 修饰的是 this 指针所指向的内存空间, 修饰的是this指针
class Person{
int a;
public:
	const void Fun1() { /*****/ }
	
	void const Fun2() { /*****/ }
		
	void Fun3(int a) const{ // 以上三种效果一样。一般采用这种写法! 编译器自动转为:void Fun3(const Person* const pThis, int a)
        this->a = 100;      // 不可修改(编译器报错)
        this = 0x11111;     // 不可修改 (编译器报错) 
    }  	
};

C++编译器自动隐式转为: void Fun3(int a) const -------> void Fun3(const Person* const pThis, int a)


写文不易 且行且珍惜
MrWang
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

盗骊

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值