c++ 基础3、c++ 中的this 指针

this 是c++ 中的一个关键字,也是一个const 指针,它可以指向当前对象,它的作用就是可以访问类中的所以成员变量和成员函数,可以写一个简单的示例,如下。

#include <iostream>
#include <stdlib.h>
#include <stdio.h>

///静态全局变量 限制文件作用域 当前文件
static int g_result = 0;

class chang {
public:
	chang() = default;
	~chang() = default;
	
	///修饰类传数 一般配被 & 意志传递进入的参数不被函数所修改,即不允许修改
	inline bool setValue(const int& va) {
		static int result = va;
		m_value = va;
		g_result = m_value;
		return true;
	}
	/// 修饰函数,表示不能修改类中数据成员也不能调用类的成员函数
	inline int getValue() const {
		return this->m_value;
	}
	static int getResult() {
		return g_result;
	}
	void printfThis()
	{
		std::cout << " this:" << this << std::endl;
	}
private:
	/// 用muteable 修饰以允许该成员可以在常量函数中被修改
	mutable int m_value;
};

int main()
{
	chang* a = new chang;
	a->printfThis();
	chang* b = new chang;
	b->printfThis();

	delete a;
	delete b;
}

 从打印结构可以看出,this 是一个指针,指向了各自创建的对象,this 实际上是成员函数的一个形参,在调用成员函数时将对象的地址作为实参传递给 this。不过 this 这个形参是隐式的,它并不出现在代码中,而是在编译阶段由编译器默默地将它添加到参数列表中。this 作为隐式形参,本质上是成员函数的局部变量,所以只能用在成员函数的内部,并且只有在通过对象调用成员函数时才给 this 赋值

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值